MySql(4)-select(2)
--==================分页和排序================ --升序 ASC 降序 DESC LIMIT 起始值,每页的数量 --查询Java程序设计-1 课程成绩排名前十的学生,并且分数大于八十(学号、姓名、课程名称、分数) SELECT s.studentno,studentname,subjectname, studentresult FROM student AS s JOIN result AS r ON s.studentno = r.studentno JOIN SUBJECT AS sub ON r.subjectno = sub.subjectno WHERE studentresult>80 AND subjectname='Java程序设计-1' ORDER BY studentresult ASC LIMIT 0,2 --LIMIT 0,2 就是从第一条信息开始,页面有两条信息 LIMIT 2,2 从第三条信息开始,页面有两条信息
--===============子查询和嵌套查询 (由里及外)==================== --Java程序设计-1课程分数不小于80分的学生的学号和姓名 SELECT studentno,studentname FROM student WHERE studentno IN ( SELECT studentno FROM result WHERE studentresult>=80 AND subjectno IN ( SELECT subjectno FROM `subject` WHERE subjectname = 'Java程序设计-1')) --查询 Java程序设计-1 前五名同学的成绩信息(学号 姓名 分数) SELECT s.studentno,studentname,studentresult FROM student s JOIN result r ON s.studentno = r.studentno WHERE subjectno IN ( SELECT subjectno FROM `subject` WHERE subjectname = 'Java程序设计-1') ORDER BY studentresult DESC LIMIT 0,5
--================聚合函数========================= --COUNT 计数 SELECT COUNT(sex) FROM student --COUNT(字段),会忽略所有的NULL值 SELECT COUNT(*) FROM student --不会忽略NULL值 SELECT COUNT(1) FROM result --不会忽略NULL值 SELECT SUM(studentresult) AS 总和 FROM result SELECT AVG(studentresult) AS 平均分 FROM result SELECT MAX(studentresult) AS 最高分 FROM result SELECT MIN(studentresult) AS 最低分 FROM result --查询不同课程的平均分、最高分、最低分 (分组) SELECT subjectname,AVG(studentresult),MAX(studentresult),MIN(studentresult) FROM result r JOIN `subject` sub ON r.subjectno=sub.subjectno GROUP BY sub.subjectno --通过什么字段来分组 HAVING AVG(studentresult)>60 --HAVING的条件必须写在GROUP BY的下面
--===================MD5加密======================== UPDATE student SET loginpwd = MD5(loginpwd) WHERE studentno=1000