Select
1.全列查询
通常情况下,使用 * 进行全列查询存在弊端:
- 查询的数据越多,意味着要传输的数据量就越大;
- 可能会影响索引的使用
2.指定列查询
3.查询字段为表达式
- 表达式不包含该字段:
- 表达式包含一个字段:
- 表达式包含多个字段:
4.为查询结构指定别名
5.结果去重
未去重时:
可发现98是重复的;
去重查询:
Where条件
- 英语不及格的同学及英语成绩 ( < 60 )
- 语文成绩在 [80, 90] 分的同学及语文成绩
使用and进行条件连接:
使用between and进行条件连接:
- 数学成绩是 58 或者 59 或者 98 或者 99 分的同学及数学成绩
使用or进行条件连接:
使用in 进行条件连接:
- 查询姓孙的同学
- 查询孙某同学:
- 语文成绩好于英语成绩的同学 :
- 总分在 200 分以下的同学 :
- 语文成绩 > 80 并且不姓孙的同学 :
- 查询孙某同学,否则要求总成绩 > 200 并且 语文成绩 < 数学成绩 并且 英语成绩 > 80 :
结果排序
ASC 为升序(从小到大)
DESC 为降序(从大到小)
默认为 ASC
- 查询同学姓名及数学成绩,按数学成绩升序显示 :
- 查询同学姓名及 qq 号,按 qq 号排序显示:
null默认为最小值; - 查询同学各门成绩,依次按 数学降序,英语升序,语文升序的方式显示
- 查询同学及总分,由高到低:
Oder by 字句中可以使用表达式,也可以使用别名; - 查询姓孙的同学或者姓曹的同学数学成绩,结果按数学成绩由高到低显示:
筛选分页结果
语法:
-- 起始下标为 0
-- 从 0 开始,筛选 n 条结果 SELECT ... FROM table_name [WHERE ...] [ORDER BY ...] LIMIT n;
-- 从 s 开始,筛选 n 条结果 SELECT ... FROM table_name [WHERE ...] [ORDER BY ...] LIMIT s, n;
-- 从 s 开始,筛选 n 条结果,比第二种用法更明确,建议使用 SELECT ... FROM table_name [WHERE ...] [ORDER BY ...] LIMIT n OFFSET n;
- 按 id 进行分页,每页 3 条记录,分别显示 第 1、2、3 页: