MySQL排序、分組和分頁

MySQL排序和分組使用的命令

排序 order by

一、 order by 單字段

——默認從小到大排序,字段後面隱藏了asc條件,當條件爲desc時,按從大到小排序。

示例1:查詢年齡在18到34歲之間的男性,按照年齡從小到大排序:

select * from student where (age between 18 and 34) and (gender="男") order by age;

示例2:查詢年齡在18到34歲之間的女性,按照身高從高到矮排序:

select * from student where (age betwwen 18 and 34) and (gender="女") order by height desc;

二、 order by 多字段

——字段從左到右權重遞減。

示例1:查詢年齡在18到34歲之間的女性,按照身高從高到矮排序,如果身高相同則按照年齡從小到大排序:

select * from student where (age betwwen 18 and 34) and (gender="女") order by height desc,age asc;

示例2:按年齡從大到小排序,相同情況下按身高從小到大排序:

select * from student order by age desc,height asc;

分組 group by

一、 聚合函數

——count,總數

示例:查詢女性有多少人。

select count(*) from student group where genrer="女";

——max,最大值。

示例:查詢男性中最高的身高。

select max(height) from student where gender="男";

——min,最小值。

示例:查詢女性中最矮的身高。

select min(height) from student where gender="女";

——sum,求和。

示例:查詢男性的身高和。

select sum(height) from student where gender="男";

——avg,平均值。

示例:查詢女性的平均年齡。

select avg(age) from student where gender="女";

——round,round(123.45, 1)可保留一位小數且四捨五入。

示例:示例:查詢女性的平均年齡並保留兩位小數。

select round(avg(age), 2) from student where gender="女";

二、 分組命令 group by

group by一般跟聚合函數配合使用,使得分組後顯示的字段對於每個小組是唯一指定的。

示例1:計算每種性別的人數。

select gender,count(*) from student group by gender;

示例2:計算每種性別的平均身高(保留兩位小數)。

select gender,round(avg(height), 2) from student group by gender;

——group_concat(字段1,字段2……),將分組中每組的所有對象的某字段顯示出來,可以添加其他字符。
示例1:按性別分組將每個性別的人數,人員名稱和平均年齡展示出來。

select gender,count(*),avg(age),group_concat(name) from .student group by gender;

——having,對分組或經where處理後的數據再進行篩選。
示例1:數據表CoreList有字段ClassID、StudentID、Core,請查詢考試不及格人數超過6個的班級。

select ClassID from CoreList where Core < 60 group by ClassID having count(*) > 6;

where命令是對原始數據進行篩選,having是對分組數據進行篩選,且使用聚合函數的結果進行判斷。
分組後除了可以使用having命令進行篩選,還可以進行order by排序和limit分頁。

分頁 limit

一、 限制查詢出來的數據個數

——limit num(查詢的數據個數)
示例:查詢數據表的前5個數據。

select * from student limit 5;

二、 輸入兩個參數,進行範圍獲取數據

——limit start(數據開始的下標,0開始), count(查詢的數據個數)
示例:查詢第6條到第10跳數據。

select * from student limit 6,5;

如果有排序和分頁要求,先排序後分頁。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章