首頁 >資料庫 >mysql教程 >MySQL資料庫單表查詢

MySQL資料庫單表查詢

jacklove
jacklove原創
2018-06-11 23:13:124293瀏覽

一、簡單查詢

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.     查詢指定欄位


#2、 依條件查詢


##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

字串函數

使用字串s2取代字串str中所有的字串s1傳回字串str的子字串,起始位置為n,長度為len傳回字串反轉後的結果

#函數名稱

作用

Length(str)

傳回字串str的長度

Concat(s1,s2,…)

#傳回一個或多個字串連線產生的新的字串

#Trim(str)

刪除字串兩側的空格

#Replace(str,s1,s2)

Substring(str,n,len)

#Reverse(str)


Locate(s1,str)日期與時間函數函數名稱作用Curdate()# 取得系統目前日期
傳回子字串s1在字串str中的起始位置

#函數名稱

##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資料庫單表查詢,更多相關內容請關注php中文網。

相關推薦:

$選擇器--是如何將DOM封裝成jquery物件

原生js元件化開發簡單輪播圖實例代碼

css3動畫導覽列3D

以上是MySQL資料庫單表查詢的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn