查詢
數據如下
or查詢
我們在上學時,會聽到這樣的話,某某某,你把誰誰誰或者誰誰誰叫過來。
這樣子的話,我們我們要查詢的,就是一個或(or)的關系了。
or查詢只有滿足一個條件即可
sql
--語法select*fromstudentWHERE<條件>or<條件>...;--例如,查詢姓名為張三的或者姓名為小劉的數據select*fromstudentWHEREname="張三"orname="小劉";
執行結果
不等于(!=)查詢
上述我們查詢的,都是等于(=)操作,但是我們在上學時,還會有這種情況。
某個學生學習可好,背東西背的可快,放學的時候可能就人家一個人過了,這時候老師可能就說
除了某某某,其他學生本篇文章全部抄3遍,淦。。。
所以這時候就是反過來的查詢的,只需要排除某個人即可!
sql
--語法select*fromstudentWHERE<條件>;--例如,查詢姓名不是張三的其他人,排除張三select*fromstudentWHEREname!="張三";
執行結果
in/not in查詢
學生們還都是年輕人,年齡大概都在20來歲,這時候老師說,班長,把年齡在19,20,21的人統計一下!
根據上述我們學過的知識,可能你是這樣嬸的。
select*fromstudentWHEREage=19orage=20orage=21;
執行結果
通過三個or找到,其實這樣也沒錯,但是還有一種更簡單的。
sql
-- 語法select * from student WHERE <列名> in (值1,值2,...) ...;-- 例如,需求同上select * from student WHERE age in (19,20,21);
執行結果
not in 就是不在這個范圍的數據啦!
sql
--查詢年齡不在19,20,21范圍的數據select*fromstudentWHEREagenotin(19,20,21);
執行結果
between查詢
between適合進行范圍查詢!
sql
--語法select*from表where<列>between<開始范圍>and<結束范圍>;--例如,查詢年齡時20-22歲的學生select*fromstudentWHEREageBETWEEN20and22;
執行結果
同理,between還能用在時間上。
select*from<表名>where<時間列>between<開始時間>and<結束時間>
模糊查詢(like)
假設現在數據如下,有三個姓張的。
老師可能突然有一天對你說,班長,把咱們姓張的列出來,我找他們談點事,咋辦???
我們只需要找,是以張開頭的,后面是啥無所謂。
所以就要用到like模糊查詢。
sql
--語法%表示匹配一個或多個字符select*from表where<列>like'[%]<字符串>[%]'--例如,查詢,以張開頭的select*fromstudentWHEREnamelike"張%";
執行結果
同理,這個%可以放在任意位置,他就是充當不確定的字符使用的,能夠自動匹配一個或多個。
例如
...WHEREnamelike"張%豐";匹配:張三豐WHEREnamelike"%魚";匹配:張甲魚WHEREnamelike"李%";匹配:李四...
限制(limit)
限制這個有點怪異,還是圖片舉例比較好。
數據如下
sql
--前兩行select*fromstudentLIMIT2;
--從第2行開始后,再取4行select*fromstudentLIMIT2,4;--同上,寫法不同select*fromstudentLIMIT4OFFSET2
排序(order by)
不知道你有沒有發現,我們之前查找的順序都是正向的。
但是會有個問題,我們新增的數據,其實id是最大的,理論來說,應該要排在最前面。
所以,應該是倒序的是最好的。
sql
--語法select*from<表名>orderby<列>asc--從小到大排序select*from<表名>orderby<列>desc--從大到小排序select*from<表名>orderby<列1>desc,<列2>asc--先根據列1排序,如果數據相同,按照列2排序
例如
根據id正向排序
select*fromstudentORDERBYidASC;
執行結果
根據id反向排序
select*fromstudentORDERBYiddesc;
執行結果
hhh,這樣我們就把數據反過來了!!!
分組(groupby)
分組,這個可能是難為了一批人,其實分組的核心,在于理解這個壓縮這個概念。
假設數據如下
性別有男有女,如果我想知道,男的有多少個,女的有多少個怎么辦???我總不能數吧。。。
所以這時候,如果能吧,男的都拿出來,女的都拿出來,就像這樣!
然后我對拿出來進行壓縮成一條。
如果這個你懂了,那分組就懂了。
語法
select<列>,COUNT(<列>)fromstudentGROUPBY<列>;--因為分組了某個列,所以就不能再展示其他列的信息了,因為壓在一塊了,顯示不了--但是可以通過count,sum等函數計算壓縮的個數,或者總值
例如
統計男女各多少人
SELECTgender,COUNT(gender)fromstudentGROUPBYgender;
執行結果
統計同一年齡多少人
SELECTage,COUNT(age)as"數量"fromstudentGROUPBYage;
執行結果
看完上述內容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注本站行業資訊頻道,感謝您對本站的支持。
本文由 貴州做網站公司 整理發布,部分圖文來源于互聯網,如有侵權,請聯系我們刪除,謝謝!
c語言中正確的字符常量是用一對單引號將一個字符括起表示合法的字符常量。例如‘a’。數值包括整型、浮點型。整型可用十進制,八進制,十六進制。八進制前面要加0,后面...
2022年天津專場考試原定于3月19日舉行,受疫情影響確定延期,但目前延期后的考試時間推遲。 符合報名條件的考生,須在規定時間登錄招考資訊網(www.zha...
:喜歡聽,樂意看。指很受歡迎?!巴卣官Y料”喜聞樂見:[ xǐ wén lè jiàn ]詳細解釋1. 【解釋】:喜歡聽,樂意看。指很受歡迎。2. 【示例】:這是...
收入分配差距是指居民之間以同一貨幣單位或實物單位表示的收入水平差異,以及在一定的社會經濟條件下,居民收入占社會總收入的比例差異。為什么收入分配差距越來越大?為什么收入分配差距越來越大?改革開放以來,中國收入分配差距擴大的主要原因有四個。第一,發展原因,即經濟發展不平衡導致的收入分配失衡加劇,特別是二元經濟造成的收入分配不平衡,這是發展中國國家的一個突出特點,成為現階段我國收入分配差距擴大的深層原因...
2022年GDP躋身“萬億元俱樂部”排名前十的城市近日2022年GDP數據的相繼公布,躋身“萬億元俱樂部”排名前十的有:上海、北京、深圳、重慶、廣州、蘇州、成都、武漢、杭州、南京,除此之外天津、寧波、青島、無錫、長沙、鄭州、佛山、福州、泉州、濟南、合肥、西安、南通、東莞這些城市GDP數據也保持在萬億元以上,與2021年比雖然沒有新增,但排名有了明顯變...
建行所推出的結算通卡,和儲蓄卡的本質都是一樣的,都屬于借記卡的一種,但是在具體的功能方面,建行的結算通卡又有一些特色的地方,和儲蓄卡不太一樣,那么建行結算通卡屬于一類卡嗎?建行結算通卡和儲蓄卡的區別有哪些呢!建行結算通卡屬于一類卡嗎?建行的結算通卡是準貸卡,是建行為方便商戶結算使用而推出的一款銀行卡,因此不是一類卡也不是二類卡。建行的結算通卡具有建行的普通借記卡的所有功能,如儲蓄貸款、轉賬、各類繳...