大家好!我是黃啊碼,今天沒繼續select * 了吧,如果還繼續,那接下來的課程先別學,回去好好把之前的課程重覆複習一遍,學明白了我們再會?廢話不多說,學今天的課程之前我們先來說說這幾個詞是怎麼個執行順序: LIMIT、DISTINCT、 FROM 、 WHERE、GROUP BY、 HAVING ...
大家好!我是黃啊碼,今天沒繼續select * 了吧,如果還繼續,那接下來的課程先別學,回去好好把之前的課程重覆複習一遍,學明白了我們再會?廢話不多說,學今天的課程之前我們先來說說這幾個詞是怎麼個執行順序:
LIMIT、DISTINCT、 FROM 、 WHERE、GROUP BY、 HAVING 、 ORDER BY
stop!先別百度,如果知道,直接在評論區把答案敲上去,然後再拉滾動條看答案:
看不見。。。看不見。。。看不見。。。看不見。。。看不見。。。看不見。。。看不見。。。看不見。。。看不見。。。FROM > WHERE > GROUP BY > HAVING > SELECT 的欄位 > DISTINCT > ORDER BY > LIMIT
看到答案了是吧?對的話,啪啪啪,說快了,叫你們給自己鼓掌哈。
好了,看課表今天的重點知識點:
"Where"是MySQL基礎查詢的數據過濾關鍵詞
"Group"是MySQL分組查詢的數據彙總關鍵詞
"Having"是MySQL分組查詢的數據過濾關鍵詞
如果你把上邊這三句語句弄明白了,今天的課你不用上也行。
你:什麼?不用上?啊碼,我明白了。
黃啊碼:啪,明白啥,隨口說說而已,你以為這裡可以隨便讓你進進出出的,老老實實上課。
from
你:這個我懂,where are you from
黃啊碼:I am from CSDN
啪!!
黃啊碼:這是csdn中國,不要跟我說外語,from表示從一個表中檢索數據。
比如:
select * from user_info
你:啊碼,你用了select *
黃啊碼:啪,就你多嘴,我只是舉個慄子
你:行,你是大佬,請。
where
用於篩選數據,比如我要查user_name為張三的數據
select * from user_info where user_name='張三'
你:啊碼,這個好簡單啊
黃啊碼:簡單歸簡單,但還是要認真學下去;
你:喳!噗!【說錯了,是遵旨】
group by
用於數據分組查詢,一般跟聚合函數配合實用。
常用的聚合函數:
count(col): 表示求指定列的總行數
max(col): 表示求指定列的最大值
min(col): 表示求指定列的最小值
sum(col): 表示求指定列的和
avg(col): 表示求指定列的平均值
你:啊碼,你一下子就丟出這麼多,我感覺有點吃力。
黃啊碼:啪,學習時用來提升自己的價值的,不然你怎麼升職加薪走向人生巔峰。
你:啊碼說得對。【就怕還沒到巔峰先摔下來】
舉例:比如我想拿user_info裡邊每個名字同名的分別有幾個
select user_name,count(user_id) from user_info GROUP BY user_name
你:這張三怎麼跟小明一樣到處都有?
黃啊碼:說得好像你學編程就沒玩過helloworld似的。
你:哈哈哈,我資料庫一般也不寫helloworld。
黃啊碼:啪,跟我杠,先賞你五丈紅。
having
當我們用到聚合函數,如sum,count後,又需要篩選條件時,having就派上用場了,因為WHERE是在聚合前篩選記錄的,having和group by是組合著用的
上邊我們已經拿到各個同名的擁有的人數了,現在如果想把法外狂徒張三這個特殊例子拿出來,我們該怎麼辦呢?來,走起
select user_name,count(user_id) from user_info GROUP BY user_name having count(user_id)>=2
你:啊碼你真厲害,法外狂徒張三就這樣被你抓到了?
黃啊碼:彩虹屁就別放了,就問你會了嗎?
你:會!!
黃啊碼:真的?那我問你,把這個語句用as簡寫出來。
你:額,,,額,,,額,,,
黃啊碼:啪,看黑板,還說你會?
select user_name,count(user_id) as count from user_info GROUP BY user_name having count>=2
你:這語句看起來好像也不省心?
黃啊碼:那,這樣呢?
select user_name,count(user_id) count from user_info GROUP BY user_name having count>=2
你:行吧,“偷工減料”你第二,沒人敢第一
黃啊碼:啪,翅膀硬了?
order by
排序,這個上節課咱們講過了,我就直接給例子吧
例子:將count>=1的數據按count排序
select user_name,count(user_id) count from user_info GROUP BY user_name having count>=1 order by count desc
黃啊碼:大聰明,會了嗎?
你:應該,或許,也許會了吧。
黃啊碼:啪,會就是會,不會就是不會,哪來哪麽多的廢話。
你:好的,還不會,不過回去會好好學習的。
黃啊碼:終於算是聽進去了。
好了,今天的課程學到這裡,有問題的留個言,別忘了一鍵三連,下次我們還會再見!
最後留個作業,不是這文章出現了幾個“啪”,這作業過時了。作業就是:group by可以用在多個欄位嗎?比如group by user_name 和user_id,知道的評論區留言,不知道的明天點關註,明天看啊碼的講解
我是黃啊碼,碼字的碼,退。。。退。。。退。。。朝!