杨 柳 通过本文主要向大家介绍了mysql等相关知识,希望本文的分享对您有所帮助
一、增
insert into 表名 (列名,列名...) values (值,值,值...)
insert into 表名 (列名,列名...) values (值,值,值...),(值,值,值...)
insert into 表名 (列名,列名...) select (列名,列名...) from 表名
二、删
delete from 表名
delete from 表名 where id=1 and name='tom'
三、改
update 表名 set name = 'tom' where id>1
四、查
select * from 表名
select * from 表名 where id > 1
select id,name,gender as gg from 表名 where id > 1
五、其他
1、基于条件的查询
select * from 表名 where id > 1 and name != 'tom' and num = 15;
select * from 表名 where id between 5 and 16;
select * from 表名 where id in (11,22,33)
select * from 表名 where id not in (11,22,33)
select * from 表名 where id in (select id from 表名)
2、通配符
select * from 表名 where name like 'to%' - to开头的所有(多个字符串)
select * from 表名 where name like 'to_' - to开头的所有(一个字符)
3、limit限制
select * from 表名 limit 5; - 前5行
select * from 表名 limit 4,5; - 从第4行开始的5行
select * from 表名 limit 5 offset 4 - 从第4行开始的5行
4、group by分组
select num from 表名 group by num
select num,id from 表名 group by num,id
select num,id from 表名 where id > 10 group by num,id order id desc
select num,id,count(*),sum(score),max(score),min(score) from 表名 group by num,id
select num from 表名 group by num having max(id) > 10
5、order by排序
select * from 表名 order by 列 asc - 根据 “列” 从小到大排列
select * from 表名 order by 列 desc - 根据 “列” 从大到小排列
select * from 表名 order by 列1 desc,列2 asc - 根据 “列1” 从大到小排列,如果相同则按列2从小到大排序
备注:group by 必须在where之后,order by之前
6、连表查询
无对应关系则不显示
select A.num, A.name, B.name
from A,B
Where A.id = B.id
无对应关系则不显示
select A.num, A.name, B.name
from A inner join B
on A.id = B.id
A表名所有显示,如果B中无对应关系,则值为null
select A.num, A.name, B.name
from A left join B
on A.id = B.id
B表名所有显示,如果B中无对应关系,则值为null
select A.num, A.name, B.name
from A right join B
on A.id = B.id
7、union组合
组合,自动处理重复
select nickname
from A
union
select name
from B
组合,不处理重复
select nickname
from A
union all
select name
from B