- 参考资料
- 《MySQL必知必会(文字版)》
1、检索数据 - SELECT 语句
1.1 检索单列
SELECT price FROM list;
1.2 检索多列
SELECT price, type FROM list;
- 检索所有列
SELECT * FROM list;
1.3 检索不同的行
- 使用
DISTINCT
关键字:只返回不同的值。
- 不能部分使用
DISTINCT
。DISTINCT
关键字应用于所有列而不仅是前置它的列。- 如果给出
SELECT DISTINCT price, type FROM list;
,除非指定的两个列都不同,否则所有行都将被检索出来。
// 错误写法
SELECT type, DISTINCT price FROM list;
// 正确写法
SELECT DISTINCT price, type FROM list;
1.4 限制结果
- 带一个值的
LIMIT
总是从第一行开始,给出的数为返回的行数。
- 例:
SELECT id,price FROM list LIMIT 5
—> 返回5项
- 带两个值的
LIMIT
可以指定从行号为第一个值的位置开始。
- 例:
SELECT id,price FROM list LIMIT 5,5;
—》 从第5项开始,返回5项
- 行0:检索出来的第一行为行0而不是行1。因此,
LIMIT 1
, 1将检索出第二行而不是第一行。
1.5 排序
- 字句
ORDER BY
:
- 多个列排序,按先后顺序排序
- 例:
ORDER BY price,type
===》 先按价格排序,再到按种类排序
- 不过,仅在多个行具有相同的
price
值时才对产品按type
进行排序,如果price
列中所有的值都是唯一的,则不会按type
排序。
- 指定排序方向 —》
DESC
关键字(降序)【默认是升序—ASC
】DESC
关键字只应用到直接位于其前面的列名- 如果想在多个列上进行降序排序,必须对每个列指定
DESC
关键字。
SELECT id,price,name FROM list ORDER BY price DESC,type;
- 注意:
- 在给出
ORDER BY
子句时,应该保证它位于FROM
子句之后。- 如果使用
LIMIT
,它必须位于ORDER BY
之后。- 使用子句的次序不对将产生错误消息。