一、簡單查詢
1. Select語句
Select [distinct] * | {欄位名稱1,欄位名稱2,欄位名稱3,。 。 。 }
From表名
# [where條件式表達式1]
名[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. 函數(列表)
##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) |
中小數點y位元後面的數 |
Sign(x) |
#傳回x的符號,-1,0或1 |
#
字串函數
#函數名稱 |
作用 |
Length(str) |
傳回字串str的長度 |
Concat(s1,s2,…) |
#傳回一個或多個字串連線產生的新的字串 |
#Trim(str) |
刪除字串兩側的空格 |
#Replace(str,s1,s2) |
|
Substring(str,n,len) |
|
#Reverse(str) |
Locate(s1,str)
傳回子字串s1在字串str中的起始位置 | |
#函數名稱 |
|
函數名稱 | 作用 |
Curdate() | # 取得系統目前日期 |
##Curtime() | 取得系統目前時間 |
#Sysdate() | 取得目前系統日期和時間 |
Time_to_sec() | 傳回將時間轉換成秒的結果 |
Adddate() | #執行日期的加運算 |
Date_format() | |
# 條件判斷函數 | |
函數名稱 | 作用 |
#If(expr, v1, v2) | 如果expr表達式為true回傳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加盟 |
(1) Concat(str1,str2,…)傳回結果為連接參數所產生的字串,如果任何一個參數為null,則傳回值為null.
四、 為表格和欄位取別名
1. 為表格取別名:select * from表名[as] 別名;
如下例子,s.gender表示student表的gender字段
2. 為字段取別名:select 字段名[AS] 別名[,字段名[as] 別名,…] from 表名;
#本文講解了MySQL資料庫單表查詢,更多相關內容請關注php中文網。
相關推薦:
以上是MySQL資料庫單表查詢的詳細內容。更多資訊請關注PHP中文網其他相關文章!