1. 程式人生 > >MySQL之SELECT 語句詳解

MySQL之SELECT 語句詳解

限制 right ont 定義 過程 lar load avg sel

本文參考實驗樓的SELECT 語句詳解結合自己操作部分而寫成。

註意:大多數系統中,SQL語句都是不區分大小寫的,但是出於嚴謹和便於區分保留字和變量名,在書寫的時,保留字應大寫,而變量名應小寫。所謂的保留字,即為:在高級語言中已定義過的字,使用者不能將這些字作為變量名和過程名使用。

1)SELECT語句的基本格式是:SELECT 查詢的列名 FROM 表名 WHERE 限制條件;在上一篇博客創建一個簡單的成績管理系統 中,使用SELECT * FROM employee代表查詢所有的列。例如,要查看employee表中的 name、age兩列,可以使用:這裏值得註意的是age和FROM之間沒有逗號,很容易寫的順手了,就寫上去了,只有列名之間需要逗號。

技術分享

2)數學符號條件,SELECT 語句中常常會有WHERE 限制條件,用於實現更為精確的查找。WHERE限制條件可以有數學符號(=、>、<、>=、<=),例如,我們可以查找出employee表中,年齡大於25歲的人的名字,如圖:

技術分享

當WHERE後面不止一條限制時,可以使用OR(或)和AND(和)來實現相應要求,如求可以用OR來實現年齡小於25,和年齡大於30的這兩部分人的名字;相應地,年齡在25和30之間的,可以使用AND 來實現,如圖,

技術分享

技術分享

求年齡在25和30之間的人名的另一種寫法是:

技術分享

3)關鍵詞 IN 和 NOT IN用於刷選“在”和“不在”某一範圍內的結果,如,要查找在部門3和部門4的人的姓名、年齡、電話,可以使用下面的方式:

技術分享

4)通配符。關鍵字LIKE一般和通配符一起使用,通配符代表未知的字符。SQL中通配符是“ _”和“ %”,前者代表一個未指定的字符,後者代表不定個的未指定字符。如:僅僅知道電話的前四位,後兩位未知,想獲得相關信息,可以如下:值得註意的是,關鍵字和統配的相對位置

技術分享

又如:僅知道姓名的首字符為‘J’想查詢相關信息,可以如下:

技術分享

5)為了是查詢的結果顯得更為順眼,我們可能需要對結果按某一列進行排序。關鍵字是ORDER BY,默認的情況下,ORDER BY的結果是升序的,使用關鍵字ASCDESC可以指定升序降序。如工資技術分享的降序排列:

技術分享

6)SQL的內置函數和計算。SQL有5個內置函數,如下:

技術分享

其中,COUNT函數可以用於任何數據類型,SUM、AVG只能對數字類數據類型進行計算,MAX、MIN可用於數字、字符串和日期時間類型的計算。

如計算出salary的最大值、最小值,可以用:

技術分享

其中,主要到兩綠色橢圓的關系,通過關鍵詞AS,MAX(salary)重命名為了max_salary。

7)在處理多個表時,子查詢只有在結果來自一個表時才有用,若,需要顯示兩個表格或者多個表格的數據時,就要使用連接(join)操作。連接的基本思想是:把兩個或多個表當做一個新的表格來操作。查詢各員工所在部門的人數,其中員工的id和name來自employee表,people_num來自department表。如下:

技術分享

另一種,連接語句的格式是JOIN ON語法,剛才的語句等價於:

技術分享

MySQL之SELECT 語句詳解