1.select
查找数据
select * from 表名
2.distinct
作用:合并相同的项,比如一张表里存在很多个时间点time_str,一个时间点会对应很多任务信息,我们要查找有多少时间点,就可以用到该关键字去重。
比如:查询当天任务的时间点[time_click]和字符串[time_str],并按照创建时间升序排列:
select distinct time_click,time_str from t_task where TO_DAYS(create_time) = TO_DAYS(NOW()) order by time_str asc;
3.limit
作用:返回表中指定行范围的数据
select task_id from t_task limit 5; --返回前5行的数据
select task_id from t_task limit 5,5; --返回从5行开始的5行。
关键字limit在分页中应用较多,假设一个业务场景,每页显示10条数据:
前端会传page:1,pageSize:10
warnMapper.get((page.getPage() - 1) * page.getPage_size(), page.getPage_size());
@Select("select * from (select * from t_warn where is_delete=0 ORDER BY create_time desc limit #{page},#{page_size}) as aa")
public List<WarnEntity> get(@Param("page")int page, @Param("page_size")int page_size);
4.order by
作用:对所查询的列进行降序排列
select task_id from t_task order by create_time desc;
也可以对多列进行排序:
select * from t_task order by task_price,task_name; --这样只有当task_price有相同的值时候,才会按task_name排序
order by 和 limit 组合可以查询最大值
select task_price from products order by task_price DESC limit 1;
order by 和 where 语句连着使用时要放在where后面。
5.and 与or
应用场景:返回任务价格大于10元,且由1002或1003生产的任务
select * from t_task where (task_id=1002 or task_id=1003) and task_price>=10;
6.IN 和 NOT IN
用 IN 可以代替 or
应用场景:假设1002和1003生产的商品
select * from t_task where task_id = 1002 or task_id = 1003; -- or方法
select * from t_task where task_id in (1002,1003); -- in方法
select * from t_task where task_id not in (1002,1003); -- not in方法查询不是1002 和 1003 生产的任务
7. like 关键字
作用:进行一些模糊匹配,通常和一些通配符进行搭配查找
select * from t_task where task_name like 'jet%' --匹配以jet开头的字符
select * from t_task where task_name like '%dcb%' --匹配任何位置包含dcb字符任务信息
select * from t_task where task_name like '_jet' -- _匹配一个字符
select * from t_task where task_name like '[jdk]%'; --匹配以 j , d , k ,开头的任务
select * from t_task where task_name like '[!jdk]%'; --匹配不以 j , d , k ,开头的任务
8.update 关键字
作用:根据一些条件更新数据库中的值
update t_task set task_status = 2 where task_id = 100; --修改商品名称为jet商品价格
9.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;