select [distinct] * | 欄位1,欄位2,欄位3... from 表名 [where 條件表示式] [group by 欄位名] [having 條件表示式] [order by 欄位名] [asc | desc ] [limit [offset] 記錄數]
“distinct” 是可選引數,用於剔除查詢結果中重複的資料。
4.1 簡單查詢
①查詢所有欄位
#方法1 select 欄位1,欄位2,...,欄位n from 表名 //所有欄位 #方法2 select * from 表名
注意:
1、一般情況下,除非需要使用表中所有欄位的資料,否則最好不要使用星號萬用字元,使用萬用字元雖然可以節省輸入查詢語句的時間,但由於獲取的資料過多會降低查詢的效率;
2、對於欄位顯示的資訊較多時,分號可以使用G替換,顯示更清晰。
②查詢指定欄位
select 欄位1,欄位2,... from 表名;//部分欄位
4.2 按條件查詢
①帶關係運算子查詢
select * | 欄位1,欄位2,... from 表名 where 欄位名 > | < | <= | >= | = |!= 欄位值;
②帶in關鍵字查詢
select * | 欄位1,欄位2,... from 表名 where 欄位名 [not] in (值1,值2,值3,...);
③帶between……and 關鍵字查詢
select * | 欄位1,欄位2,... from 表名 where 欄位名 [not] between 值1 and 值2; //值1和值2也包括在查詢範圍內
④空值查詢
select * | 欄位1,欄位2... from 表名 where 欄位名 is [not] NULL;
⑤帶distinct關鍵字查詢
select distinct 欄位名 from 表名; #只查詢該欄位中不重複的值 select distinct 欄位名1,欄位名2,... from 表名; #只有當所列欄位值都相等時候才認定為重複資料
⑥帶like關鍵字的查詢
select * | 欄位1,欄位2,... from 表名 where 欄位名 like "%值%"; #%匹配任意長度的字串,包括空字串 select * | 欄位1,欄位2,... from 表名 where 欄位名 like "_值_"; #_匹配單個字元,若要匹配多個字元,需要使用多個_
⑦帶and關鍵字的多條件查詢
select * | 欄位1,欄位2... from 表名 where 表示式1 and 表示式2;
⑧帶or關鍵字的多條件查詢
select * | 欄位1,欄位2... from 表名 where 表示式1 or 表示式2;
注意:
or關鍵字和and關鍵字可以一起使用,需要注意的是,and的優先順序高於or,因此當兩者在一起使用時,應該先運算and兩邊的條件表示式,再運算or兩邊的條件表示式。
4.3 高階查詢
①聚合函式
count() 返回資料行數 sum() 返回某列值的和 max() 返回某列值的最大值 min() 返回某列值的最小值 avg() 返回某列值的平均值
②對查詢結果排序
select * | 欄位1,欄位2,... from 表名 where 表示式 order by 欄位1[asc | desc] , 欄位2[asc | desc] , ...;
查詢結果先按照欄位1以規定的順序進行排序,對於欄位1值相同的資料,再按照欄位2以規定的順序進行排序。
③分組查詢
select * | 欄位1,欄位2,... from 表名 where 表示式 group by 欄位1 , 欄位2 , ... [having 條件表示式];
注意:
group by 一般和聚合函式在一起使用,如果查詢的欄位出現在group by之後,卻沒有包含在聚合函式中,該欄位顯示的是分組後的第一條記錄的值;
having關鍵字指定條件表達對分組後的內容進行過濾;
④limit限制查詢結果的數量
select * | 欄位1,欄位2,... from 表名 where 表示式 limit [offset] 每頁顯示的行數pagesize;
滿足條件的資料可能很多,通過limit子句,限定返回的是哪些行的資料。減少資料的傳輸,便於使用者檢視資料。
對於一個頁面,每頁顯示的行pagesize一般為固定的。
偏移量:偏移指定行之後,再開始顯示。
假設每頁顯示10行,當前頁碼為page
顯示第二頁 偏移2-1頁資料(2-1) *10 =10
顯示第三頁 偏移3-1頁資料(3-1) *10 =20
第n頁,偏前n-1頁已經顯示的內容。offset =(page -1 ) * pagesize
4.4 為表和欄位取別名
①給表取別名
select * | 欄位1,欄位2,... from 表名 [as] 別名;
②給欄位取別名
select 欄位1 [as] 別名,欄位2 [as] 別名,... from 表名;