MySql学习笔记(一) —— 关键字的使用

1.distinct关键字

作用:检索出有不同值的列,比如一个商品表中存在供应商vend_id,一个供应商会对应很多商品,我们要查找有多少供应商,就可以用到该关键字去重。

select distinct vend_id from products;

2.limit关键字

作用:返回表中指定行范围的数据

select prod_name from products limit 5; --返回不多于5行的数据

select prod_name from products limit 5,5; --返回从5行开始的5行。

关键字limit在分页中应用较多,假设一个业务场景,每页显示10条数据,根据当前页数显示该页数据,pc表示当前页,则表中起始行 ts = pc*10-10+1

第一种方式:

select * from t_book limit ts,10

这样当数据量很大时候,后面页的数据需要跨越很多数据,我们可以采取第二中方式进行优化

第二种方式:

select * from t_book where book_id>(select t_id from t_book order by limit ts,1) limit 10

 3.order by关键字

作用:对所查询的列进行降序排列

select prod_name from products order by prod_name;

也可以对多列进行排序

select * from products order by prod_price,prod_name;   --这样只有当prod_price有相同的值时候,才会按prod_name排序

也可以在字段后加上DESC关键字进行指定降序排序

select prod_name from products order by prod_name desc;

order by 和 limit 组合可以查询最大值

select prod_price from products order by prod_price DESC limit 1;

order by 和 where 语句连着使用时要放在where后面。

4.and 和 or 结合使用

应用场景:返回商品价格大于10元,且由1002或1003生产的产品

select * from products where (vend_id=1002 or vend_id=1003) and prod_price>=10;

5.IN 和 NOT IN

用 IN 可以代替 or

应用场景:假设1002和1003生产的商品

select * from products where vend_id = 1002 or vend_id = 1003; -- or方法

select * from products where vend_id in (1002,1003); -- in方法
select * from products where vend_id not in (1002,1003); -- not in方法查询不是1002 和 1003 生产的商品

6. like 关键字

作用:进行一些模糊匹配,通常和一些通配符进行搭配查找

select * from products where prod_name like 'jet%' --匹配以jet开头的字符

select * from products where prod_name like '%dcb%' --匹配任何位置包含dcb字符商品信息

select * from products where prod_name like '_jet' -- _匹配一个字符

 

select * from products where prod_name like '[jdk]%';  --匹配以 j , d , k ,开头的商品

select * from products where prod_name like '[!jdk]%';  --匹配不以 j , d , k ,开头的商品

7.update 关键字

作用:根据一些条件更新数据库中的值

update products set prod_price = 100 where prod_name = jet;  --修改商品名称为jet商品价格

如果不加判断会修改所有商品价格

8.union 关键字

UNION 操作符用于合并两个或多个 SELECT 语句的结果集。

请注意,UNION 内部的每个 SELECT 语句必须拥有相同数量的列。列也必须拥有相似的数据类型。同时,每个 SELECT 语句中的列的顺序必须相同。

SELECT City FROM Customers
UNION
SELECT City FROM Suppliers
ORDER BY City;

UNION 不能用于列出两个表中所有的城市。如果一些客户和供应商来自同一个城市,每个城市只会列出一次。UNION 只会选取不同的值。请使用 UNION ALL 来选取重复的值!

SELECT City FROM Customers
UNION ALL
SELECT City FROM Suppliers
ORDER BY City;
原文地址:https://www.cnblogs.com/love-Stefanie/p/6891706.html