語法
select 字段列表 from 表名列表 where 條件列表 group by 分組字段 having 分組之后的條件 order by 排序 limit 分頁限定
基礎(chǔ)查詢
- 多個(gè)字段的查詢
select 列名,列名 from 表名潜腻; - 去除重復(fù)
select distinct 列名 from 表名瞎惫; - 計(jì)算列
select 列名+列名 from 表名寞酿;
select 列名+ifnull(列名漫贞,0) from 表名; - 起別名
select 列名+列名 as 別名 from 表名;
條件查詢
- where 子句后面跟條件
- 運(yùn)算符
- >,<,<=,>=,=,<>
- BETWEEN...AND...
select * from 表名 where 列名 between 20 and 90;
select * from 表名 where 列名 >=20 and 列名<=90; - LIKE
模糊查詢
占位符:_:單個(gè)字符的占位符虾攻;%:任意多個(gè)字符的占位符
select * from 表名 where 列名 LIKE “%馬%”;
select * from 表名 where 列名 LIKE “ 馬__” - IS NULL
select * from 表名 where 列名 is NULL更鲁;
select * from 表名 where 列名 is not NULL霎箍; - and 或 &&
- or 或 ||
- not 或 !
- in
select * from 表名 where 列名 in (20,60,80);
select * from 表名 where 列名= 20 or 列名=60 or 列名=80澡为;
排序查詢
- 語法
order by 排序字段1 排序方式1漂坏,排序字段2 排序方式2; - 排序方式
ASC:升序
DESC:降序 - 注意
如果不指定排序方式媒至,默認(rèn)為升序 -
例子
select * from 表名 ORDER BY 列名 ASC樊拓,列名 DESC;
聚合查詢
將一列數(shù)據(jù)作為一個(gè)整體塘慕,進(jìn)行縱向的計(jì)算,結(jié)果為單行單列的一個(gè)值
- 語法
select 聚合函數(shù)(列名) from 表名蒂胞;
函數(shù) | 說明 |
---|---|
count | 計(jì)算個(gè)數(shù)(一般選擇非空的列) |
max | 計(jì)算最大值 |
min | 計(jì)算最小值 |
sum | 計(jì)算和 |
avg | 計(jì)算平均值 |
-
例子
select count(列名) from 表名图呢; - 注意
聚合函數(shù)的計(jì)算會(huì)排除NULL值,為得到包含null的列數(shù)可以使用以下方法
①選擇不包含null的列進(jìn)行計(jì)算
②使用IFNULL函數(shù):select count(IFNULL(列名骗随,0)) from 表名蛤织;
分組查詢
- 語法:group by 分組字段;
- 注意:
①分組之后查詢的字段:分組字段鸿染、聚合函數(shù)
②where和having的區(qū)別 -
where和having的區(qū)別
①where在分組之前進(jìn)行限定指蚜,如果不滿足條件,則不參與分組涨椒。having在分組之后進(jìn)行限定摊鸡,如果不滿足條件绽媒,則不會(huì)被查詢出來。
②where后不可以跟聚合函數(shù)免猾,having之后可以進(jìn)行聚合函數(shù)的判斷是辕。 -
例子
select sex,AVG(math),COUNT(id) from student where math > 70 GROUP BY sex having COUNT(id)>2;
select sex,AVG(math),COUNT(id) as 人數(shù) from student where math > 70 GROUP BY sex having 人數(shù)>2;
分頁查詢
- 語法
limit 開始的索引,每頁查詢的條數(shù) -
公式
開始的索引=(當(dāng)前的頁碼-1)*每頁顯示的條數(shù) -
例子
select * from 表名 limit 0,10猎提;
select * from 表名 limit 10,10;