读《MySql 必知必会》笔记

数据检索 select

数据检索

  • 注释
-- 单行注释

/*
    多行注释
*/
  • 检索不同的行 distinct
-- distinct 指示mysql只返回不同的值
select distinct vend_id from products;

-- distinct 会作用于所有字段
select distinct vend_di, prod_price from products;
  • 限制结果 limit ,注意:第一行为 ‘0行’
-- 指定返回不多余5行
select prod_name from products limit 5;

-- 返回从 ‘行5’ 开始的5行;第一个参数指定开始位置,第二个参数为限制行数
select prod_name from products limit 5, 5

-- 另外一种写法,从 ‘行3’ 开始的4行
select prod_name from products limit 4 offset 3

/*
    mysql的第一行为 ‘0行’ 
*/

排序检索数据 order by 子句(clause)

  • 数据排序
-- 按照 prod_name 列排序
select prod_name from products order by prod_name;

/*
可以以非检索列排序
*/
select prod_name from products order by prod_price;
  • 按多个列进行排序
-- 首先按价格排序,然后按名称排序;注意:仅当多个行具有相同的prod_price值时,才对prod_name进行排序
select prod_id, prod_price, prod_name from products order by prod_price, prod_name;
  • 指定排序方向,默认为升序排序( ASC
-- 使用 desc 关键字进行降序排序;z - a
-- 按照价格进行降序排序
select prod_id, prod_price, prod_name from products order by prod_price desc;

-- 对多个列排序,desc 仅应用到直接位于其前面的列名
-- 对 prod_price 进行降序排序,对 prod_name 进行升序排序
select prod_id, prod_price, prod_name from products order by prod_price desc, prod_name;

/*
    如果想对多个列都进行降序排序,必须对每个列指定 desc 关键字
*/
  • 区分大小写和排序顺序
/*
    取决于数据库设置
    默认 A 与 a 相同
*/
  • order by 和 limit 组合
-- 找出价格最高的物品
select prod_price from products order by prod_price desc limit 1;

/*
    order by 子句应该确保位于 from 子句之后,
    如果使用 limit 子句,limit 必须位于 order by 子句之后
*/

过滤数据

猜你喜欢

转载自www.cnblogs.com/xiangyang-li/p/9166376.html