您好,登錄后才能下訂單哦!
這篇文章主要介紹MySQL數(shù)據(jù)庫單表查詢的示例,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!
一、 簡單查詢
1. Select語句
Select [distinct] * | {字段名1,字段名2,字段名3,。。。}
From表名
[where條件表達式1]
[groupby 字段名 [having 條件表達式2]]
[orderby 字段名 [asc|desc]]
[limit[offset] 記錄數(shù)]
(1) Distinct是可選參數(shù),用于剔除查詢結(jié)果中重復(fù)的數(shù)據(jù);
(2) Group by是可選參數(shù),用于將查詢結(jié)果按照指定字段進行分組;having也是可選次參賽,用于對分組后的結(jié)果進行過濾
(3) Order by是可選參數(shù),用于將查詢結(jié)果按照指定字段進行排序,排序方式由參數(shù)ASC或DESC控制,如果不指定,則默認為升序排列(ASC)
(4) Limit 是可選參數(shù),用于限制查詢結(jié)果的數(shù)量,limit后面可以跟兩個參數(shù),第一個參數(shù)offset表示偏移量,如果偏移量為0,則從查詢結(jié)果的第一條記錄開始,偏移量為n則從查詢結(jié)果中的第n+1條記錄開始。如果不指定,則默認為0. 第二個參數(shù)‘記錄數(shù)’表示返回查詢記錄的條數(shù)。
2. 查詢所有字段
(1) 在select語句中指定所有字段
(2) 在select語句中使用*通配符代替所有字段:查詢結(jié)果只能按照字段在表中定義的順序顯示。
3. 查詢指定字段
二、 按條件查詢
1. 帶關(guān)系運算符的查詢
2. 帶in關(guān)鍵字的查詢:in關(guān)鍵字用于判斷某個字段的值是否在指定集合中。
3. 帶between and關(guān)鍵字的查詢:用于判斷某個字段的值是否在指定的范圍內(nèi)。
4. 空值查詢
5. 帶distint關(guān)鍵字的查詢:過濾掉查詢記錄中重復(fù)的值
當distinct關(guān)鍵字作用于多個字段時,只有它后面指定的多個字段值都相同,才會被認為是重復(fù)記錄。
6. 帶like關(guān)鍵字的查詢:like關(guān)鍵字可以判斷兩個字符串是否相匹配。格式如下:
Select * | [{字段名1,字段名2,…} from 表名
Where 字段名 [not] like ‘匹配字符串’;
(1) 百分號(%)通配符:匹配任意長度的字符串,包括空字符串
可以使用多個%通配符,也可以和not一起使用
(2) 下劃線(_)通配符:只能匹配單個字符,如果要匹配多個字符,需要使用多個下劃線通配符,如果使用多個下劃線匹配多個連續(xù)的字符則下劃線之間不能有空格。如‘M_ _QL’中間有一個空格,只能匹配’My SQL’而不能匹配‘MySQL’。
(3) 使用百分號和下劃線通配符進行查詢操作:
注意:如果要匹配字符串中的百分好和下劃線,就需要在銅牌字符串中使用‘\’對百分號和下劃線進行轉(zhuǎn)義,如’\%’匹配百分號字面值。
7. 帶and關(guān)鍵字的多條件查詢:使用and關(guān)鍵字可以連接兩個或者多個查詢條件,只有滿足所有條件的記錄才會被返回。每多加一個查詢條件就多加一個and關(guān)鍵字。
8. 帶or關(guān)鍵字的多條件查詢:只要滿足一個條件即返回記錄。
9. Or和and關(guān)鍵字在一起使用的情況:and的優(yōu)先級高于or, 應(yīng)優(yōu)先運算and兩邊的條件表達式,再運算or兩邊的條件表達式。
三、 高級查詢
1. 聚合函數(shù):count(),sum(),avg(),max()和min()
(1) count()函數(shù)用來統(tǒng)計記錄的條數(shù):selectcount(*) from 表名
(2) sum()函數(shù)用于求出表中某個字段所有值的總和:select sum(字段名) from 表名
(3) avg()函數(shù)用于求出某個字段所有值的平均值:select avg(字段名) from 表名;
(4) max()函數(shù)是求最大值的函數(shù),用于求出某個字段的最大值:select max(字段名) from 表名。
(5) min()函數(shù)是求最小值的函數(shù):selectmin(字段名) from 表名
2. 對查詢結(jié)果排序
Select 字段名1,字段名2,… from表名 order by 字段名1[ASC | DESC],字段名2[ASC | DESC]…
3. 分組查詢
Select 字段名1,字段名2,… from 表名 group by 字段名1,字段名2,… [having 條件表達式];
(1) 單獨使用group by分組:查詢結(jié)果安裝字段中不同的值進行分類,查詢結(jié)果只顯示每個組中的一條記錄。
(2) Group by 和聚合函數(shù)一起使用
(3) Group by和having關(guān)鍵字一起使用
Having關(guān)鍵字和where關(guān)鍵字的作用相同,都用于設(shè)置條件表達式對查詢結(jié)果進行過濾,兩者的區(qū)別在于having關(guān)鍵字后可以跟聚合函數(shù),而where關(guān)鍵字不能。通常having關(guān)鍵字都和group by一起使用,用于對分組后的結(jié)果進行過濾。
4. 使用LIMIT限制查詢結(jié)果的數(shù)量:指定查詢結(jié)果從哪一條記錄開始以及一共查詢多少條信息。
Select 字段名1,字段名2,… from表名 limit [offset,] 記錄數(shù)
5. 函數(shù)(列表)
數(shù)學函數(shù)
函數(shù)名稱 | 作用 |
Abs(x) | 返回x的絕對值 |
Sqrt(x) | 返回x的非負2次方根 |
Mod(x,y) | 返回x被y除后的余數(shù) |
Ceiling(x) | 返回不小于x的最小整數(shù) |
Floor(x) | 返回不大于x的最大整數(shù) |
Round(x,y) | 對x進行四舍五入操作,小數(shù)點后保留y位 |
Runcate(x,y) | 舍去x中小數(shù)點y位后面的數(shù) |
Sign(x) | 返回x的符號,-1,0或1 |
字符串函數(shù)
函數(shù)名稱 | 作用 |
Length(str) | 返回字符串str的長度 |
Concat(s1,s2,…) | 返回一個或者多個字符串連接產(chǎn)生的新的字符串 |
Trim(str) | 刪除字符串兩側(cè)的空格 |
Replace(str,s1,s2) | 使用字符串s2替換字符串str中所有的字符串s1 |
Substring(str,n,len) | 返回字符串str的子串,起始位置為n,長度為len |
Reverse(str) | 返回字符串反轉(zhuǎn)后的結(jié)果 |
Locate(s1,str) | 返回子串s1在字符串str中的起始位置 |
日期和時間函數(shù)
函數(shù)名稱 | 作用 |
Curdate() | 獲取系統(tǒng)當前日期 |
Curtime() | 獲取系統(tǒng)當前時間 |
Sysdate() | 獲取當前系統(tǒng)日期和時間 |
Time_to_sec() | 返回將時間轉(zhuǎn)換成秒的結(jié)果 |
Adddate() | 執(zhí)行日期的加運算 |
Subdate() | 執(zhí)行日期的減運算 |
Date_format() | 格式化輸出日期和時間值 |
條件判斷函數(shù)
函數(shù)名稱 | 作用 |
If(expr, v1, v2) | 如果expr表達式為true返回v1,否則返回v2 |
Ifnull(v1,v2) | 如果v1不為null返回v1,否則返回v2 |
Case expr when v1 then r1 [when v2 then r2…] [else rn] end | 如果expr值等于v1、v2等,則返回對應(yīng)位置then后面的結(jié)果,否則返回else后的結(jié)果rn |
加密函數(shù)
函數(shù)名稱 | 作用 |
Md5(str) | 對字符串str進行MD5加盟 |
Encode(str, pwd_str) | 使用pwd作為密碼加密字符串str |
Decode(str, pwd_str) | 使用pwd作為密碼解密字符串str |
(1) Concat(str1,str2,…)返回結(jié)果為連接參數(shù)產(chǎn)生的字符串,如果任何一個參數(shù)為null,則返回值為null.
四、 為表和字段取別名
1. 為表取別名:select * from 表名 [as] 別名;
如下例子,s.gender表示student表的gender字段
2. 為字段取別名:select 字段名 [AS] 別名 [,字段名 [as] 別名,…] from 表名;
以上是“MySQL數(shù)據(jù)庫單表查詢的示例”這篇文章的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對大家有幫助,更多相關(guān)知識,歡迎關(guān)注億速云行業(yè)資訊頻道!
免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。