Mysql查詢(xún)語(yǔ)句進(jìn)階知識(shí)集錦
前言
上次咱們簡(jiǎn)單的學(xué)習(xí)了一下select的用法,大概有了一些基本的了解。
咱們接著上次繼續(xù)來(lái)看叭!
查詢(xún)
數(shù)據(jù)如下
or查詢(xún)
我們?cè)谏蠈W(xué)時(shí),會(huì)聽(tīng)到這樣的話,某某某,你把誰(shuí)誰(shuí)誰(shuí)或者誰(shuí)誰(shuí)誰(shuí)叫過(guò)來(lái)。
這樣子的話,我們我們要查詢(xún)的,就是一個(gè)或(or)的關(guān)系了。
or查詢(xún)只有滿足一個(gè)條件即可
sql
-- 語(yǔ)法SELECT * from student WHERE <條件> or <條件> ...;-- 例如,查詢(xún)姓名為張三的或者姓名為小劉的數(shù)據(jù)SELECT * from student WHERE name="張三" or name="小劉";
執(zhí)行結(jié)果
不等于(!=)查詢(xún)
上述我們查詢(xún)的,都是等于(=)操作,但是我們?cè)谏蠈W(xué)時(shí),還會(huì)有這種情況。
某個(gè)學(xué)生學(xué)習(xí)可好,背東西背的可快,放學(xué)的時(shí)候可能就人家一個(gè)人過(guò)了,這時(shí)候老師可能就說(shuō)
除了某某某,其他學(xué)生本篇文章全部抄3遍,淦。。。
所以這時(shí)候就是反過(guò)來(lái)的查詢(xún)的,只需要排除某個(gè)人即可!
sql
-- 語(yǔ)法SELECT * from student WHERE <條件>;-- 例如,查詢(xún)姓名不是張三的其他人,排除張三SELECT * from student WHERE name。剑埲ⅲ
執(zhí)行結(jié)果
in/not in查詢(xún)
學(xué)生們還都是年輕人,年齡大概都在20來(lái)歲,這時(shí)候老師說(shuō),班長(zhǎng),把年齡在19,20,21的人統(tǒng)計(jì)一下!
根據(jù)上述我們學(xué)過(guò)的知識(shí),可能你是這樣?jì)鸬摹?/p>
SELECT * from student WHERE age=19 or age=20 or age=21;
執(zhí)行結(jié)果
通過(guò)三個(gè)or找到,其實(shí)這樣也沒(méi)錯(cuò),但是還有一種更簡(jiǎn)單的。
sql
-- 語(yǔ)法SELECT * from student WHERE <列名> in (值1,值2,...) ...;-- 例如,需求同上SELECT * from student WHERE age in (19,20,21);
執(zhí)行結(jié)果
not in 就是不在這個(gè)范圍的數(shù)據(jù)啦!
sql
-- 查詢(xún)年齡不在19,20,21范圍的數(shù)據(jù)SELECT * from student WHERE age not in (19,20,21);
執(zhí)行結(jié)果
between查詢(xún)
between適合進(jìn)行范圍查詢(xún)!
sql
-- 語(yǔ)法select * from 表 where <列> between <開(kāi)始范圍> and <結(jié)束范圍>;-- 例如,查詢(xún)年齡時(shí)20-22歲的學(xué)生SELECT * from student WHERE age BETWEEN 20 and 22;
執(zhí)行結(jié)果
同理,between還能用在時(shí)間上。
select * from <表名> where <時(shí)間列> between <開(kāi)始時(shí)間> and <結(jié)束時(shí)間>
模糊查詢(xún)(like)
假設(shè)現(xiàn)在數(shù)據(jù)如下,有三個(gè)姓張的。
老師可能突然有一天對(duì)你說(shuō),班長(zhǎng),把咱們姓張的列出來(lái),我找他們談點(diǎn)事,咋辦???
我們只需要找,是以張開(kāi)頭的,后面是啥無(wú)所謂。
所以就要用到like模糊查詢(xún)。
sql
-- 語(yǔ)法 %表示匹配一個(gè)或多個(gè)字符select * from 表 where <列> like '[%]<字符串>[%]'-- 例如,查詢(xún),以張開(kāi)頭的SELECT * from student WHERE name like "張%";
執(zhí)行結(jié)果
同理,這個(gè)%可以放在任意位置,他就是充當(dāng)不確定的字符使用的,能夠自動(dòng)匹配一個(gè)或多個(gè)。
例如
... WHERE name like "張%豐";
匹配:張三豐
WHERE name like "%魚(yú)";
匹配:張甲魚(yú)
WHERE name like "李%";
匹配:李四
...
限制(limit)
限制這個(gè)有點(diǎn)怪異,還是圖片舉例比較好。
數(shù)據(jù)如下
sql
-- 前兩行SELECT * from student LIMIT 2;
-- 從第2行開(kāi)始后,再取4行SELECT * from student LIMIT 2,4;-- 同上,寫(xiě)法不同SELECT * from student LIMIT 4 OFFSET 2
排序(order by)
不知道你有沒(méi)有發(fā)現(xiàn),我們之前查找的順序都是正向的。
但是會(huì)有個(gè)問(wèn)題,我們新增的數(shù)據(jù),其實(shí)id是最大的,理論來(lái)說(shuō),應(yīng)該要排在最前面。
所以,應(yīng)該是倒序的是最好的。
sql
-- 語(yǔ)法select * from <表名> order by <列> asc -- 從小到大排序select * from <表名> order by <列> desc -- 從大到小排序select * from <表名> order by <列1> desc,<列2> asc -- 先根據(jù) 列1 排序,如果數(shù)據(jù)相同,按照 列2 排序
例如
根據(jù)id正向排序
SELECT * from student ORDER BY id ASC;
執(zhí)行結(jié)果
根據(jù)id反向排序
SELECT * from student ORDER BY id desc;
執(zhí)行結(jié)果
hhh,這樣我們就把數(shù)據(jù)反過(guò)來(lái)了。!
分組(groupby)
分組,這個(gè)可能是難為了一批人,其實(shí)分組的核心,在于理解這個(gè)壓縮這個(gè)概念。
假設(shè)數(shù)據(jù)如下
性別有男有女,如果我想知道,男的有多少個(gè),女的有多少個(gè)怎么辦???我總不能數(shù)吧。。。
所以這時(shí)候,如果能吧,男的都拿出來(lái),女的都拿出來(lái),就像這樣!
然后我對(duì)拿出來(lái)進(jìn)行壓縮成一條。
如果這個(gè)你懂了,那分組就懂了。
語(yǔ)法
SELECT <列>,COUNT(<列>) from student GROUP BY <列>;-- 因?yàn)榉纸M了某個(gè)列,所以就不能再展示其他列的信息了,因?yàn)閴涸谝粔K了,顯示不了-- 但是可以通過(guò)count,sum等函數(shù)計(jì)算壓縮的個(gè)數(shù),或者總值
例如
統(tǒng)計(jì)男女各多少人
SELECT gender,COUNT(gender) from student GROUP BY gender;
執(zhí)行結(jié)果
統(tǒng)計(jì)同一年齡多少人
SELECT age,COUNT(age) as "數(shù)量" from student GROUP BY age;
執(zhí)行結(jié)果
注意:group by必須在where之后,order by之前。
總結(jié)
本篇主要講述的是Mysql查詢(xún)語(yǔ)法,再單表查詢(xún)中,基本上就上述這么些的內(nèi)容,但是從理論到事件,是需要時(shí)間的。
一定要勤加練習(xí),什么是or查詢(xún),like查詢(xún)注意事項(xiàng),尤其是group by分組查詢(xún),一定要多多思考和聯(lián)系。
如果在操作過(guò)程中有任何問(wèn)題,記得下面留言,我們看到會(huì)第一時(shí)間解決問(wèn)題。
不要輕易改變自己,因?yàn)槟憧赡芫褪鞘澜缟夏穷w未加工的最亮的鉆石。
我是碼農(nóng)星期八,如果覺(jué)得還不錯(cuò),記得動(dòng)手點(diǎn)贊一下哈。
感謝你的觀看。
如果在操作過(guò)程中有任何問(wèn)題,記得下面留言,我們看到會(huì)第一時(shí)間解決問(wèn)題。

發(fā)表評(píng)論
請(qǐng)輸入評(píng)論內(nèi)容...
請(qǐng)輸入評(píng)論/評(píng)論長(zhǎng)度6~500個(gè)字
圖片新聞
-
機(jī)器人奧運(yùn)會(huì)戰(zhàn)報(bào):宇樹(shù)機(jī)器人摘下首金,天工Ultra搶走首位“百米飛人”
-
存儲(chǔ)圈掐架!江波龍起訴佰維,索賠121萬(wàn)
-
長(zhǎng)安汽車(chē)母公司突然更名:從“中國(guó)長(zhǎng)安”到“辰致科技”
-
豆包前負(fù)責(zé)人喬木出軌BP后續(xù):均被辭退
-
字節(jié)AI Lab負(fù)責(zé)人李航卸任后返聘,Seed進(jìn)入調(diào)整期
-
員工持股爆雷?廣汽埃安緊急回應(yīng)
-
中國(guó)“智造”背后的「關(guān)鍵力量」
-
小米汽車(chē)研發(fā)中心重磅落地,寶馬家門(mén)口“搶人”
最新活動(dòng)更多
-
即日-9.16點(diǎn)擊進(jìn)入 >> 【限時(shí)福利】TE 2025國(guó)際物聯(lián)網(wǎng)展·深圳站
-
10月23日火熱報(bào)名中>> 2025是德科技創(chuàng)新技術(shù)峰會(huì)
-
10月23日立即報(bào)名>> Works With 開(kāi)發(fā)者大會(huì)深圳站
-
10月24日立即參評(píng)>> 【評(píng)選】維科杯·OFweek 2025(第十屆)物聯(lián)網(wǎng)行業(yè)年度評(píng)選
-
11月27日立即報(bào)名>> 【工程師系列】汽車(chē)電子技術(shù)在線大會(huì)
-
12月18日立即報(bào)名>> 【線下會(huì)議】OFweek 2025(第十屆)物聯(lián)網(wǎng)產(chǎn)業(yè)大會(huì)
推薦專(zhuān)題
- 1 先進(jìn)算力新選擇 | 2025華為算力場(chǎng)景發(fā)布會(huì)暨北京xPN伙伴大會(huì)成功舉辦
- 2 人形機(jī)器人,正狂奔在批量交付的曠野
- 3 宇樹(shù)機(jī)器人撞人事件的深度剖析:六維力傳感器如何成為人機(jī)安全的關(guān)鍵屏障
- 4 解碼特斯拉新AI芯片戰(zhàn)略 :從Dojo到AI5和AI6推理引擎
- 5 AI版“四萬(wàn)億刺激”計(jì)劃來(lái)了
- 6 2025年8月人工智能投融資觀察
- 7 8 a16z最新AI百?gòu)?qiáng)榜:硅谷頂級(jí)VC帶你讀懂全球生成式AI賽道最新趨勢(shì)
- 9 Manus跑路,大廠掉線,只能靠DeepSeek了
- 10 地平線的野心:1000萬(wàn)套HSD上車(chē)