開始打雞血了
- 語法順序
select distinct 字段1,字段1,字段3 from 庫.表
where 條件
group by 分組條件
having 過濾
order by 排序字段1,排序字段2
limit n;
- 執行順序
先找表(from)
過濾數據(where)
分組(group by) [沒有group by 整體算作一組]
過濾 (having)
去重(distinct)
排序 (order by)
限制查詢數據條數(limit)
- group by 使用的聚合函數
max() 最大
min() 最小
count() 統計
avg() 平均
sum() 求和
group_concat() 分組後查看組內所有成員
select 分組字段,group_concat(表字段) from 表 group by 分組字段
- 設置group by 的 global sql_mode爲嚴格分組模式
set global sql_mode="ONLY_FULL_GROUP_BY";
設置後 select 的字段只能取分組字段
select 分組字段 from table group by 分組字段
- order by排序
order by默認爲升序(asc)排序
降序排序(desc)
order by 字段1,字段2
先按照字段1排序,字段1相同按照字段2排序
- limit 限制查詢條數和分頁
【查詢 n 條 limit n】
用法示例:查詢工資最高的員工信息
select * from employ order by salary desc limit 1
【分頁 limit n,m】
n--頁碼 m--每頁條數
符合分頁的sql 格式爲:
select * from table limit (n-1)*m,m
如每頁十條數據
第一頁 select * from table limit 0,10
第二頁 select * from table limit 10,10
...
...
...