Select完整的语法:
SELECT [ALL | DISTINCT]
{* | table.* | [table.field1[as alias1][,table.field2[as alias2]][, ...]]}
FROM table_name [as table_alias]
[left | right | inner join table_name2] -- 联合查询
[WHERE ...] -- 指定结果需满足的条件
[GROUP BY ...] -- 指定结果按照哪几个字段来分组
[HAVING] -- 过滤分组的记录必须满足的次要条件
[ORDER BY ...] -- 指定查询记录按一个或多个条件排序
[LIMIT {[offset,]row_count | row_countOFFSET offset}];
-- 指定查询的记录从哪条至哪条
注意:[ ]是代表可选的,{ }代表必选的
排序
代码演示:
-- 排序:升序:ASC 和降序:DESC
SELECT s.studentno,studentname,subjectname,studentresult
FROM student s
INNER JOIN result r
ON s. studentno = r.studentno
INNER JOIN `subject` sub
ON r.subjectno = sub.subjectno
WHERE subjectname = '数据库结构-1'
-- 根据查询的结果,成绩使用降序排序
-- 语法:ORDER BY 通过哪个字段排序,怎么排
ORDER BY studentresult DESC
分页
为什么要分页?
——缓解数据库压力,给人的体验更好。(瀑布流:无限往下刷,如抖音等)
SELECT s.studentno,studentname,subjectname,studentresult
FROM student s
INNER JOIN result r
ON s. studentno = r.studentno
INNER JOIN `subject` sub
ON r.subjectno = sub.subjectno
WHERE subjectname = '数据库结构-1'
ORDER BY studentresult DESC
-- 分页:每页只显示5条数据
-- 语法:LIMIT 起始值,页面的大小
-- LIMIT 1,5 -- 第2~6条数据
LIMIT 0,5 -- 第1~5条数据
-- 第一页: LIMIT 0,5
-- 第二页: LIMIT 5,5
-- 第三页: LIMIT 10,5
-- 第N页: LIMIT (N-1)*5,5 5为页面大小(pagesize),n为当前页,(n-1)*pagesize为起始值
-- 数据总数/页面大小=总页数