[toc]
表内容操作
1、增
- insert into 表 (列名,列名...) values (值,值,值...)
- insert into 表 (列名,列名...) values (值,值,值...),(值,值,值...)
- insert into 表 (列名,列名...) select (列名,列名...) from 表
2、删
- delete from 表
- delete from 表 where id=1 and name='alex'
3、改
- update 表 set name = 'alex' where id>1
4、查
- select * from 表
- select * from 表 where id > 1
- select nid,name,gender as gg from 表 where id > 1
5、其他
a、條件
- select * from 表 where id > 1 and name != 'alex' and num = 12;
- 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 nid from 表)
b、通配符
ale開頭的所有(多個字元串)
- select * from 表 where name like 'ale%'
ale開頭的所有(一個字元)
- select * from 表 where name like 'ale_'
c、限制
前5行
- select * from 表 limit 5;
從第4行開始的5行
- select * from 表 limit 4,5;
- select * from 表 limit 5 offset 4
d、排序
根據 “列” 從小到大排列
- select * from 表 order by 列 asc
根據 “列” 從大到小排列
- select * from 表 order by 列 desc
根據 “列1” 從大到小排列,如果相同則按列2從小到大排序
- select * from 表 order by 列1 desc,列2 asc
e、分組
==group by 必須在where之後,order by之前==
==條件語句包含函數的不能用where,隻能用having==
- select num from 表 group by num
- select num,nid from 表 group by num,nid
- select num,nid from 表 where nid > 10 group by num,nid order nid desc
- select num,nid,count(*),sum(score),max(score),min(score) from 表 group by num,nid
- select num from 表 group by num having max(id) > 10
f、連表
A、B表有的都顯示
select A.num, A.name, B.name
from A,B
Where A.nid = B.nid
隻顯示A、B表都有的
==inner join==
select A.num, A.name, B.name
from A inner join B
on A.nid = B.nid
A表所有顯示,如果B中無對應關系,則值為null
==left join==
select A.num, A.name, B.name
from A left join B
on A.nid = B.nid
B表所有顯示,如果B中無對應關系,則值為null
==right join==
select A.num, A.name, B.name
from A right join B
on A.nid = B.nid
g、組合
組合,自動處理重合
==union==
select nickname
from A
union
select name
from B
組合,不處理重合
==union all==
select nickname
from A
union all
select name
from B
h、聚合函數
- 計數: count
- 最大值: max
- 最小值: min
- 求和: sum
- 平均值: avg