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