《MySQL必知必会》学习之第5-7章 排序-过滤数据

第5章 排序检索数据

1.使用order by 关键字升序

单列排序

#对prod_id进行升序排序
select prod_id from products  order by prod_id;

多列排序

#先对prod_price进行排序,再按照prod_id列进行排序。
select prod_id,prod_price from products order by prod_price,prod_id;

2.使用desc关键字降序

单列降序

#将desc置于列名后,此列进行降序排序(desc只对作用于前的列名)
#此处按价格降序排序
select prod_price from products order by prod_price desc;

多列降序

# 查找序号,名称,价格,先按照价格降序排序,然后对名称降序排序;
select prod_id,prod_name, prod_price from products order by prod_price desc,prod_name desc;

3.使用limit 找最大值和最小值

使用limit找最大值
格式:先order by列,desc置于其后,再放limit数据;

#查找prod_price列,然后进行降序排序,返回第一行数据;
select prod_price from products order by prod_price desc limit 1;

使用limit找最小值

#查找prod_price列,进行升序排序,返回第一行数据;
select prod_price from products order by prod_price limit 1;

第6-7章 过滤数据

1.使用where过滤数据

价格<=2.5的名称、价格

select prod_name,prod_price from products where prod_price <=2.5;

名称='fuses’;不区分大小写

select prod_name,prod_price from products where prod_price ='fuses';

2.使用 != 和<>不匹配检查

使用!=进行不匹配检查

select prod_name ,prod_price from products where prod_price !=1003;

使用<>进行不匹配检查

select prod_name,prod_price from products where prod_price <>1003;

3.使用between进行范围检索

a between b 包括a和b

#搜索价格大于等于2.5和小于等于10的商品名、价格;
select prod_name,prod_price from products where prod_price between 2.5 and 10;

4.使用is null检索空值

搜索空值的前提:列允许为空的情况下,否则无意义;

#搜索价格为空值的名称、价格
select prod_name,prod_price from products where prod_price is null;
#搜索顾客表id中email为空的情况
select cust_id from customers where email_id is null;

5. 使用and 和or 过滤数据

使用and 和or连接where字句
(1)or操作符,符合其中一个条件即可

#查找供应商为1002或者1003的供应商对应的产品名、价格
select vend_id,prod_name,prod_price from products where vend_id=1002 or vend_id=1003;

(2)and操作符,需要符合and连接的两个条件

#查找供应商等于1003,且产品价格小于等于2.5对应的产品名、价格
select vend_id,prod_name,prod_price from products where vend_id=1003 and prod_price <=2.5;

(3)and 和or连接时的优先级;
and连接部分优先计算,再计算or

#查找供应商vend_id=1002 或者供应商vend_id等于1003且产品价格小于等于2.5;
select vend_id,prod_name,prod_price from products where vend_id=1002 or vend_id=1003 and prod_price<=2.5;

使用()定义and和or计算的优先级

#查找供应商vend_id=1002或1003,且产品价格小于等于2.5的产品名、价格
select vend_id ,prod_name,prod_price from products where (vend_id=1002 or vend_id=1003) and prod_price <=2.5;

6.使用in关键字

in 操作符后跟由括号()组成的合法清单,整个清单必须在圆括号中
in 后面的合法清单与or关键字的功能相同

#查找供应商vend_id为1002或1003的供应商、产品名、价格
select vend_id,prod_name,prod_price from products where vend_id in (1002,1003);

与上面语句的功能一致

#查找供应商vend_id为1002或1003的供应商、产品名、价格
select vend_id ,prod_name,prod_price from products where vend_id=1002 or vend_id=1003;

7.使用not关键字

提示:not 对in,between,exsits取反

(1)not与in连接,取不符合in组成的核发清单的数据

#查找vend_id为1002或者1003以外的供应商、产品名、价格,并且排序
select vend_id,prod_name,prod_price from products where vend_id not in (1002,1003) order by prod_name;

你可能感兴趣的:(Mysql)