溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

MySQL查詢語句有哪些

發(fā)布時間:2021-08-13 15:33:05 來源:億速云 閱讀:194 作者:Leah 欄目:數(shù)據(jù)庫

MySQL查詢語句有哪些,很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。

查詢

數(shù)據(jù)如下

MySQL查詢語句有哪些

or查詢

我們在上學時,會聽到這樣的話,某某某,你把誰誰誰或者誰誰誰叫過來。

這樣子的話,我們我們要查詢的,就是一個或(or)的關系了。

or查詢只有滿足一個條件即可

sql

-- 語法 SELECT * from student WHERE <條件> or <條件> ...; -- 例如,查詢姓名為張三的或者姓名為小劉的數(shù)據(jù) SELECT * from student WHERE name="張三" or name="小劉";

執(zhí)行結果

MySQL查詢語句有哪些

不等于(!=)查詢

上述我們查詢的,都是等于(=)操作,但是我們在上學時,還會有這種情況。

某個學生學習可好,背東西背的可快,放學的時候可能就人家一個人過了,這時候老師可能就說

除了某某某,其他學生本篇文章全部抄3遍,淦。。。

所以這時候就是反過來的查詢的,只需要排除某個人即可!

sql

-- 語法 SELECT * from student WHERE <條件>; -- 例如,查詢姓名不是張三的其他人,排除張三 SELECT * from student WHERE name!="張三";

執(zhí)行結果

MySQL查詢語句有哪些

in/not in查詢

學生們還都是年輕人,年齡大概都在20來歲,這時候老師說,班長,把年齡在19,20,21的人統(tǒng)計一下!

根據(jù)上述我們學過的知識,可能你是這樣嬸的。

SELECT * from student WHERE age=19 or age=20 or age=21;

執(zhí)行結果

MySQL查詢語句有哪些

通過三個or找到,其實這樣也沒錯,但是還有一種更簡單的。

sql

-- 語法SELECT * from student WHERE <列名> in (值1,值2,...) ...;--  例如,需求同上SELECT * from student WHERE age in (19,20,21);

執(zhí)行結果

MySQL查詢語句有哪些

not in 就是不在這個范圍的數(shù)據(jù)啦!

sql

-- 查詢年齡不在19,20,21范圍的數(shù)據(jù) SELECT * from student WHERE age not in (19,20,21);

執(zhí)行結果

MySQL查詢語句有哪些

between查詢

between適合進行范圍查詢!

sql

-- 語法 select * from 表 where <列> between <開始范圍> and <結束范圍>; -- 例如,查詢年齡時20-22歲的學生 SELECT * from student WHERE age BETWEEN 20 and 22;

執(zhí)行結果

MySQL查詢語句有哪些

同理,between還能用在時間上。

select * from <表名> where <時間列> between <開始時間> and <結束時間>

模糊查詢(like)

假設現(xiàn)在數(shù)據(jù)如下,有三個姓張的。

MySQL查詢語句有哪些

老師可能突然有一天對你說,班長,把咱們姓張的列出來,我找他們談點事,咋辦???

我們只需要找,是以張開頭的,后面是啥無所謂。

所以就要用到like模糊查詢。

sql

-- 語法 %表示匹配一個或多個字符 select * from 表 where <列> like '[%]<字符串>[%]' -- 例如,查詢,以張開頭的 SELECT * from student WHERE name like "張%";

執(zhí)行結果

MySQL查詢語句有哪些

同理,這個%可以放在任意位置,他就是充當不確定的字符使用的,能夠自動匹配一個或多個。

例如

... WHERE name like "張%豐"; 匹配:張三豐 WHERE name like "%魚"; 匹配:張甲魚 WHERE name like "李%"; 匹配:李四 ...

限制(limit)

限制這個有點怪異,還是圖片舉例比較好。

數(shù)據(jù)如下

MySQL查詢語句有哪些

sql

-- 前兩行 SELECT * from student LIMIT 2;

MySQL查詢語句有哪些

-- 從第2行開始后,再取4行 SELECT * from student LIMIT 2,4; -- 同上,寫法不同 SELECT * from student LIMIT 4 OFFSET 2

MySQL查詢語句有哪些

排序(order by)

不知道你有沒有發(fā)現(xiàn),我們之前查找的順序都是正向的。

MySQL查詢語句有哪些

但是會有個問題,我們新增的數(shù)據(jù),其實id是最大的,理論來說,應該要排在最前面。

所以,應該是倒序的是最好的。

sql

-- 語法 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í)行結果

MySQL查詢語句有哪些

根據(jù)id反向排序

SELECT * from student ORDER BY id desc;

執(zhí)行結果

MySQL查詢語句有哪些

hhh,這樣我們就把數(shù)據(jù)反過來了!!!

分組(groupby)

分組,這個可能是難為了一批人,其實分組的核心,在于理解這個壓縮這個概念。

假設數(shù)據(jù)如下

MySQL查詢語句有哪些

性別有男有女,如果我想知道,男的有多少個,女的有多少個怎么辦???我總不能數(shù)吧。。。

所以這時候,如果能吧,男的都拿出來,女的都拿出來,就像這樣!

MySQL查詢語句有哪些

然后我對拿出來進行壓縮成一條。

MySQL查詢語句有哪些

如果這個你懂了,那分組就懂了。

語法

SELECT <列>,COUNT(<列>) from student GROUP BY <列>; -- 因為分組了某個列,所以就不能再展示其他列的信息了,因為壓在一塊了,顯示不了 -- 但是可以通過count,sum等函數(shù)計算壓縮的個數(shù),或者總值

例如

統(tǒng)計男女各多少人

SELECT gender,COUNT(gender) from student GROUP BY gender;

執(zhí)行結果

MySQL查詢語句有哪些

統(tǒng)計同一年齡多少人

SELECT age,COUNT(age) as "數(shù)量" from student GROUP BY age;

執(zhí)行結果

MySQL查詢語句有哪些

看完上述內(nèi)容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注億速云行業(yè)資訊頻道,感謝您對億速云的支持。

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內(nèi)容。

AI