MySQL语法使用-简单查询-《MySQL学习笔记》

admin 2025-11-03 23:36:12 数据库 来源:ZONE.CI 全球网 0 阅读模式
  • 1、查询单个列
  • 2、查询多个列
  • 3、查询所有列
  • 4、列的别名(AS)
  • 5、查询结果去重(DISTINCT)
    • 5.1 去除单列的重复结果
    • 5.2 去除多列的重复结果
  • 6、限制查询结果条数(LIMIT)
  • 7、对查询结果排序(ORDER BY)
    • 7.1 单列排序
    • 7.2 多列排序
  • 8、将查询结果赋值给变量

    本节用到的两张表:

    • 学生信息表:

    student_info表

    number name sex id_number department major enrollment_time
    20180101 杜子腾 158177199901044792 计算机学院 计算机科学与工程 2018-09-01
    20180102 杜琦燕 151008199801178529 计算机学院 计算机科学与工程 2018-09-01
    20180103 范统 17156319980116959X 计算机学院 软件工程 2018-09-01
    20180104 史珍香 141992199701078600 计算机学院 软件工程 2018-09-01
    20180105 范剑 181048200008156368 航天学院 飞行器设计 2018-09-01
    20180106 朱逸群 197995199801078445 航天学院 电子信息 2018-09-01
    • 学生成绩表:

    student_score表

    number subject score
    20180101 母猪的产后护理 78
    20180101 论萨达姆的战争准备 88
    20180102 母猪的产后护理 100
    20180102 论萨达姆的战争准备 98
    20180103 母猪的产后护理 59
    20180103 论萨达姆的战争准备 61
    20180104 母猪的产后护理 55
    20180104 论萨达姆的战争准备 46

    最简单的查询语句莫过于:

    1. SELECT * FROM 表名;

    1、查询单个列

    格式:

    1. SELECT 列名 FROM 表名;

    2、查询多个列

    格式:

    1. SELECT 列名1, 列名2, 列名3, ... 列名n FORM 表名;

    我们把SELECT语句后面跟的多个查询列称为查询列表,查询列表中的列名可以按照任意顺序摆放,结果将按照我们指定的列名顺序呈现。

    3、查询所有列

    格式:

    1. SELECT * FROM 表名:

    4、列的别名(AS)

    为列取另外一个名字,叫列的别名,比如原来的列是英文的,我想显示的时候把列的名称从英文改成中文,这个时候就可以用列的别名。

    格式:

    1. SELECT 列名 [AS] 列的别名 FROM 表名;

    需要注意:列的别名仅在本次SELECT查询语句中生效,并没有永久改变列的名称,下次再查询时列仍按原来的名字显示。

    5、查询结果去重(DISTINCT)

    5.1 去除单列的重复结果

    有时候某个列或者某一些列中重复数据太多,我们只想查询不重复的数据,此时可以用**DISTINCT**去重。

    格式:

    1. SELECT DISTINCT 列名 FROM 表名;

    5.2 去除多列的重复结果

    格式:

    1. SELECT DISTINCT 列名1, 列名2, ...列名n FROM 表名;

    6、限制查询结果条数(LIMIT)

    有时查询列的数据时会显示太多行,此时我们可以限制一下显示数据的行数,可以用**LIMIT**

    格式:

    1. # 从开始行显示,一共显示这么多行
    2. SELECT 列名1, 列名2, ...列名n FROM 表名 LIMIT 开始行, 显示行数;
    3. # LIMIT后面仅跟一个参数时,默认从第0行开始,LIMIT后面跟的参数代表显示的行数
    4. SELECT 列名1, 列名2, ...列名n FROM 表名 LIMIT 显示行数;

    7、对查询结果排序(ORDER BY)

    DataGrip里直接可以通过按钮选择。

    7.1 单列排序

    格式:

    1. # 升序
    2. SELECT * FROM 表名 ORDER BY 列名 [ASC];
    3. # 降序
    4. SELECT * FROM 表名 ORDER BY 列名 DESC;

    默认是升序排序,即ASC不写也会按照升序排序。

    7.2 多列排序

    格式:

    1. SELECT * FROM 表名 ORDER BY 列名1 ASC, 列名2 DESC;

    代表先按照列名1升序排列,如果列名1的值相同,再按照列名2降序排列,有个优先级的问题,列名在前的优先级高。

    8、将查询结果赋值给变量

    需要存储函数和存储过程这一节的知识,场景就是将SELECT的结果赋值给变量。举例:

    1. CREATE PROCEDURE get_score_data(
    2. OUT max_score DOUBLE,
    3. OUT min_score DOUBLE,
    4. OUT avg_score DOUBLE,
    5. s VARCHAR(100)
    6. )
    7. BEGIN
    8. SELECT MAX(score), MIN(score), AVG(score) FROM student_score WHERE subject = s INTO max_score, min_score, avg_score;
    9. END;
    评论:0   参与:  10