数据查询语句DQL(Data Query Language)可以说是SQL最让人神魂颠倒的部分了。将它说成数据从数据库以不同需求、不同姿势中取出的一门艺术一点也不过分。它更体现出SQL(structured query language)所谓结构化查询的精髓。
接下来的几篇,我们就来一步步的整理这门获取数据的艺术。
这一节继续上一节的内容,总的内容还是这张导图。
结果排序
查询出的数据,都是默认按照在表中的顺序呈现的,可以使用ORDER BY
可以对查询出的结果按照某字段的值进行排序。
这个关键字还有另外两个属性DESC
和ASC
表示结果降序或升序(默认是升序)
完整地格式为:查询语句 ORDER BY 字段名 DESC/ASC
例如,按照分数的降序顺序,查询所有的学生
编写SQL语句
SELECT * FROM student ORDER BY score DESC;
执行:
ORDER BY
后面的字段接受原字段和字段的别名:
一下两种写法等价
SELECT name,score s FROM student ORDER BY s;
SELECT name,score s FROM student ORDER BY score;
初次之外,还可以使用新创建的字段:
例如,按照班级和年级的和进行降序排序
编写SQL
SELECT *,student_class+grade sg FROM student ORDER BY sg DESC;
运行之:
聚合函数
聚合函数,是一种对查询出的结果集统计的函数,他们将结果集中的某些字段进行聚合并进行统计。使用聚合函数的结构为:SELECT 聚合函数(统计字段) FROM 表名 限制;
但是需要注意的是,使用聚合函数结果不是虚拟表而是对虚拟表的统计结果。
COUNT
COUNT函数用于统计查询出的结果集中记录的条数。
例如,查询成绩大于70的同学的数量
编写SQL
SELECT COUNT(*) FROM student WHERE score > 70;
运行之:
AVG
AVG用于统计字段中记录的平均值
例如,统计学生中分数大于70的学生的平均分
编写SQL
SELECT AVG(score) FROM student WHERE score > 70;
运行之:
SUM
SUM 用于计算字段的和
例如,计算分数大于70分的学生的总分
编写SQL
SELECT SUM(score) FROM student WHERE score > 70;
执行之:
MIN
MIN用于统计字段中的最小值
例如,统计所有学生中的最低分数
编写SQL
SELECT MIN(score) FROM student;
执行之:
MAX
MAX用于统计字段中的最大值
例如,统计所有学生中的最高分数
编写SQL
SELECT MAX(score) FROM student;
执行之
参考资料:
- 《MySQL必知必会》
- 站内视频教程:Mysql数据库基础入门视频教程