使用DQL命令查询数据(二)
SELECT语法(四)
ORDER BY排序
ORDER BY排序查询:
对SELECT语句查询得到的结果,按某些字段进行排序。
与DESC或ASC搭配使用,默认为ASC。
SELECT语法(五)
MySQL的LIMIT
LIMIT [m,]n 或 LIMIT n OFFSET m:
限制SELECT返回结果的行数。
m 制定第一个返回记录行的偏移量。
n 制定返回记录行的最大数目。
示例一:查询所有《高等数学-2》的考试成绩,并按照由高到低显示,同时把该成绩对应的学生的学号、姓名打印出来。
要求:查询前5条记录。
语句展示:
SELECT s.StudentNo 学号,StudentName 姓名,sub.SubjectName '高等数学-2',
r.score 成绩 FROM student s JOIN result r ON s.StudentNo=r.stu_id
JOIN `subject` sub ON r.sub_no=sub.SubjectINO WHERE sub.SubjectName=
'高等数学-2' ORDER BY r.score DESC LIMIT 5
结果展示:
示例二:查询《高等数学-3》学生信息。
需求说明:查询《高等数学-3》课程成绩前10名且分数大于70的学生信息(学号,姓名,课程名,分数)。
语句展示:
SELECT s.StudentNo 学号,StudentName 姓名,sub.SubjectName '高等数学-3',
r.score 成绩 FROM student s JOIN result r ON s.StudentNo=r.stu_id
JOIN `subject` sub ON r.sub_no=sub.SubjectINO WHERE sub.SubjectName=
'高等数学-3' AND r.score>70 ORDER BY r.score DESC LIMIT 10
结果展示:
子查询
在查询语句中的WHERE条件子句中,又嵌套了另外一个查询语句。
示例三:查询课程为《高等数学-2》且分数不小于60分的学生的学号和姓名。
语句展示:
SELECT s.StudentNo 学号,s.StudentName 姓名 FROM student s JOIN
result r ON s.StudentNo=r.stu_id WHERE sub_no=
(SELECT SubjectINO FROM SUBJECT WHERE SubjectName='高等数学-2')
AND r.score>=60
结果展示:
MySQL函数
数学函数
详情请见:https://blog.csdn.net/dsjia2970727/article/details/108137691
字符串函数
详情请见:https://blog.csdn.net/dsjia2970727/article/details/108137905
日期和时间函数
详情请见:https://blog.csdn.net/dsjia2970727/article/details/108142130
系统信息函数
详情请见:https://blog.csdn.net/dsjia2970727/article/details/108163427
统计函数
SELECT语法(六)
GROUP BY分组
使用GROUP BY关键字对查询结果分组
对所有的数据进行分组统计
分组的依据字段可以有多个,并依次分组
与HAVING结合使用,进行分组后的数据筛选
示例三:按照不同的课程分组,分别算出其平均分、最高分和最低分,对于低于60分平均分的不予显示。
语句展示:
SELECT sub.SubjectName 课程名,MAX(r.score) 最高分,MIN(r.score) 最低分,AVG(r.score) 平均分
FROM `subject` sub JOIN result r ON r.sub_no=sub.GradeID GROUP BY sub.SubjectName HAVING AVG(r.score)>60
结果展示: