你的浏览器不支持canvas

Enjoy life!

数据库-SQL(二)检索数据

Date: Author: JM

本文章采用 知识共享署名-非商业性使用-禁止演绎 4.0 国际许可协议 进行许可。

  • 参考资料
    • 《MySQL必知必会(文字版)》

1、检索数据 - SELECT 语句

1.1 检索单列

SELECT price FROM list;

sql

1.2 检索多列

SELECT price, type FROM list;

sql

  • 检索所有列
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;

sql

1.4 限制结果

  • 带一个值的 LIMIT 总是从第一行开始,给出的数为返回的行数。
    • 例:SELECT id,price FROM list LIMIT 5 —> 返回5项

sql

  • 带两个值的 LIMIT 可以指定从行号为第一个值的位置开始。
    • 例:SELECT id,price FROM list LIMIT 5,5; —》 从第5项开始,返回5项

sql


  • 行0:检索出来的第一行为行0而不是行1。因此,LIMIT 1, 1将检索出第二行而不是第一行。

1.5 排序

  • 字句 ORDER BY
    • 多个列排序,按先后顺序排序
    • 例:ORDER BY price,type ===》 先按价格排序,再到按种类排序
      • 不过,仅在多个行具有相同的 price 值时才对产品按 type 进行排序,如果price列中所有的值都是唯一的,则不会按type排序。

sql


  • 指定排序方向 —》 DESC关键字(降序)【默认是升序—ASC
  • DESC 关键字只应用到直接位于其前面的列名
  • 如果想在多个列上进行降序排序,必须对每个列指定 DESC关键字。
SELECT id,price,name FROM list ORDER BY price DESC,type;

sql


  • 注意:
    • 在给出ORDER BY子句时,应该保证它位于FROM子句之后。
    • 如果使用LIMIT,它必须位于ORDER BY之后。
    • 使用子句的次序不对将产生错误消息。

对于本文内容有问题或建议的小伙伴,欢迎在文章底部留言交流讨论。