第4章 單表查詢_第1頁
第4章 單表查詢_第2頁
第4章 單表查詢_第3頁
第4章 單表查詢_第4頁
第4章 單表查詢_第5頁
已閱讀5頁,還剩77頁未讀, 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、讓IT教學更簡單,讓IT學習更有效讓IT教學更簡單,讓IT學習更有效第四章 單表查詢簡單查詢高級查詢按條件查詢為表和字段取別名讓IT教學更簡單,讓IT學習更有效 學習目標掌握簡單查詢、按條件查詢12熟悉高級查詢3了解為表和字段取別名掌握了解熟悉讓IT教學更簡單,讓IT學習更有效 目錄簡單查詢4.14.1點擊查看本小節知識架構按條件查詢4.24.2點擊查看本小節知識架構高級查詢4.34.3為表和字段取別名4.44.4點擊查看本小節知識架構點擊查看本小節知識架構讓IT教學更簡單,讓IT學習更有效 知識架構4.1 簡單查詢返回目錄4.1.1SELECT語句4.1.2查詢所有字段4.1.3查詢指定字段

2、讓IT教學更簡單,讓IT學習更有效 知識架構4.2 按條件查詢返回目錄4.2.1帶關系運算符的查詢4.2.2帶IN關鍵字的查詢4.2.3帶BETWEEN AND關鍵字的查詢4.2.4空值查詢4.2.5帶DISTINCT關鍵字的查詢4.2.6帶LIKE關鍵字的查詢4.2.7帶AND關鍵字的多條件查詢4.2.8帶OR關鍵字的多條件查詢讓IT教學更簡單,讓IT學習更有效 知識架構4.3 高級查詢返回目錄4.3.1聚合函數4.3.2對查詢結果排序4.3.3分組查詢4.3.4使用LIMIT限制查詢結果的數量4.3.5函數(列表)讓IT教學更簡單,讓IT學習更有效 知識架構4.4 為表和字段為表和字段取別

3、名返回目錄4.4.1為表取別名4.4.2為字段取別名讓IT教學更簡單,讓IT學習更有效4.1 簡單查詢 4.1.1 SELECT語句語句 SELECT語句的基本語法格式如下:“字段名1,字段名2”表示從表中查詢的指定字段,星號(“*”)通配符表示表中所有字段,兩者為互斥關系,任選其一“DISTINCT”是可選參數,用于剔除查詢結果中重復的數據表示從指定的表中查詢數據“WHERE”是可選參數,用于指定查詢條件“GROUP BY”是可選參數,用于將查詢結果按照指定字段進行分組,“HAVING”也是可選參數,用于對分組后的結果進行過濾“ORDER BY”是可選參數,用于將查詢結果按照指定字段進行排序

4、。排序方式由參數ASC或DESC控制,其中ASC表示按升序進行排列,DESC表示按降序進行排列。如果不指定參數,默認為升序排列?!癓IMIT”是可選參數,用于限制查詢結果的數量。LIMIT后面可以跟2個參數,第一個參數“OFFSET”表示偏移量,如果偏移量為0則從查詢結果的第一條記錄開始,偏移量為1則從查詢結果的中第二條記錄開始以此類推。OFFSET為可選值,如果不指定其默認值為0。第二個參數“記錄數”表示返回查詢記錄的條數。讓IT教學更簡單,讓IT學習更有效4.1 簡單查詢 4.1.2 查詢所有字段查詢所有字段 1、在SELECT語句中指定所有字段 在SELECT語句中列出所有字段名來查詢表

5、中的數據,其語法格式如下: 在上述語法格式中,“字段名1、字段名2”表示查詢的字段名,這里需要列出表中所有的字段名。SELECT 字段名1,字段名2, FROM 表名讓IT教學更簡單,讓IT學習更有效4.1 簡單查詢 4.1.2 查詢所有字段查詢所有字段 【例4-1】查詢student表中的所有記錄。 為了實現查詢功能,首先創建一個數據庫chapter04,創建數據庫的SQL語句如下所示: 選擇使用chapter04數據庫,SQL語句如下所示: 在數據庫chapter04中創建表student,創建student表的SQL語句如下所示:CREATE DATABASE chapter04;USE

6、 chapter04;讓IT教學更簡單,讓IT學習更有效4.1 簡單查詢 4.1.2 查詢所有字段查詢所有字段 執行SQL語句創建student表,然后使用INSERT語句向student表中插入8條記錄,INSERT語句如下所示: INSERT語句執行成功后,接下來通過SELECT語句查詢student表中的記錄,SQL語句如下所示:SELECT id,name,grade,gender FROM student;讓IT教學更簡單,讓IT學習更有效4.1 簡單查詢 4.1.2 查詢所有字段查詢所有字段 查詢結果如下所示: 從查詢結果可以看出,SELECT語句成功地查出了表中所有字段的數據。讓

7、IT教學更簡單,讓IT學習更有效4.1 簡單查詢 4.1.2 查詢所有字段查詢所有字段 需要注意的是,在SELECT語句的查詢字段列表中,字段的順序是可以改變的,無需按照其表中定義的順序進行排列,例如,在SELECT語句中將name字段放在查詢列表的最后一列,執行結果如下所示:讓IT教學更簡單,讓IT學習更有效4.1 簡單查詢 4.1.2 查詢所有字段查詢所有字段 2、在、在SELECT語句中使用星號語句中使用星號(“*”)通配符代替所有字段通配符代替所有字段 在SELECT語句中列出所有字段名來查詢表中的數據,其語法格式如下: 【例4-2】在SELECT語句中使用星號(“*”)通配符查詢st

8、udent表中的所有字段,SQL語句如下所示: 注意:一般情況下,除非需要使用表中所有字段的數據,否則最好不要使用星號通配符,使用通配符雖然可以節省輸入查詢語句的時間,但由于獲取的數據過多會降低查詢的效率。SELECT * FROM 表名;SELECT * FROM student;讓IT教學更簡單,讓IT學習更有效4.1 簡單查詢 4.1.3 查詢指定字段查詢指定字段 查詢數據時,可以在SELECT語句的字段列表中指定要查詢的字段,這種方式只針對部分字段進行查詢,不會查詢所有字段。 查詢指定字段語法格式如下所示: 在上面的語法格式中“字段名1,字段名2,”表示表中的字段名稱,這里只需指定表中

9、部分字段的名稱。SELECT 字段名1,字段名2, FROM 表名;讓IT教學更簡單,讓IT學習更有效4.1 簡單查詢 4.1.3 查詢指定字段查詢指定字段 【例4-3】使用SELECT語句查詢student表中name字段和gender字段的數據。 查詢語句如下: 如果在SELECT語句中改變查詢字段的順序,查詢結果中字段顯示的順序也會做相應改變,例如,將SELECT語句中的name字段和gender字段位置互換,查詢語句如下:SELECT name,gender FROM student;SELECT gender,name FROM student;讓IT教學更簡單,讓IT學習更有效4.

10、2 按條件查詢 4.2.1 關系運算符的查詢關系運算符的查詢 在SELECT語句中,最常見的是使用WHERE子句指定查詢條件對數據進行過濾,其語法格式如下: 在MySQL中,常見的關系運算符如表4-1所示:關系運算符關系運算符說明說明=等于 不等于!=不等于 小于 大于=大于等于表4-1 關系運算符讓IT教學更簡單,讓IT學習更有效4.2 按條件查詢 4.2.1 關系運算符的查詢關系運算符的查詢 需要說明的是“”運算符和“!=”等價,都表示不等于。 接下來以表4-1中的“=”、“”關系運算符為例,將它們作為查詢條件對數據進行過濾。 【例4-4】查詢student表中id為4的學生姓名,SQL語

11、句如下所示: 在SELECT語句中使用“=”運算符獲取id值為4的數據,執行SELECT語句,結果如下所示:SELECT id,name FROM student WHERE id=4;讓IT教學更簡單,讓IT學習更有效4.2 按條件查詢 4.2.1 關系運算符的查詢關系運算符的查詢 【例4-5】使用SELECT語句查詢name為“wusong”的學生性別,執行結果如下所示:讓IT教學更簡單,讓IT學習更有效4.2 按條件查詢 4.2.1 關系運算符的查詢關系運算符的查詢 【例4-6】查詢student表中grade大于80的學生姓名,執行結果如下所示:讓IT教學更簡單,讓IT學習更有效4.2

12、 按條件查詢 4.2.2 帶帶IN關鍵字的查詢關鍵字的查詢 IN關鍵字用于判斷某個字段的值是否在指定集合中,如果字段的值在集合中,則滿足條件,該字段所在的記錄將被查詢出來。 語法格式如下所示: 在上面的語法格式中,“元素1、元素2”表示集合中的元素,即指定的條件范圍。NOT是可選參數,使用NOT表示查詢不在IN關鍵字指定集合范圍中的記錄。讓IT教學更簡單,讓IT學習更有效4.2 按條件查詢 4.2.2 帶帶IN關鍵字的查詢關鍵字的查詢 【例4-7】查詢student表中id值為1、2、3的記錄,SQL語句如下所示: 執行結果如下所示:SELECT id,grade,name,gender FR

13、OM student WHERE id IN(1,2,3);讓IT教學更簡單,讓IT學習更有效4.2 按條件查詢 4.2.2 帶帶IN關鍵字的查詢關鍵字的查詢 【例4-8】查詢student表中id值不為1、2、3的記錄,SQL語句如下所示: 執行結果如下所示:SELECT id,grade,name,gender FROM student WHERE id NOT IN(1,2,3);讓IT教學更簡單,讓IT學習更有效4.2 按條件查詢 4.2.3 帶帶BETWEEN AND關鍵字的查詢關鍵字的查詢 BETWEEN AND用于判斷某個字段的值是否在指定的范圍之內,如果字段的值在指定范圍內,則

14、滿足條件,該字段所在的記錄將被查詢出來,反之則不會被查詢出來。 語法格式如下所示: 在上面的語法格式中,“值1”表示范圍條件的起始值,“值2”表示范圍條件的結束值。NOT是可選參數,使用NOT表示查詢指定范圍之外的記錄,通常情況下“值1”小于“值2”,否則查詢不到任何結果。讓IT教學更簡單,讓IT學習更有效4.2 按條件查詢 4.2.3 帶帶BETWEEN AND關鍵字的查詢關鍵字的查詢 【例4-9】查詢student表中id值在2和5之間的學生姓名,SQL語句如下所示: 執行結果如下所示:SELECT id,name FROM student WHERE id BETWEEN 2 AND 5

15、;讓IT教學更簡單,讓IT學習更有效4.2 按條件查詢 4.2.3 帶帶BETWEEN AND關鍵字的查詢關鍵字的查詢 【例4-10】查詢student表中id值不在2和5之間的學生姓名,SQL語句如下所示: 執行結果如下所示:SELECT id,name FROM student WHERE id NOT BETWEEN 2 AND 5;讓IT教學更簡單,讓IT學習更有效4.2 按條件查詢 4.2.4 空值查詢空值查詢 在數據表中,某些列的值可能為空值(NULL),空值不同于0,也不同于空字符串。在MySQL中,使用IS NULL關鍵字來判斷字段的值是否為空值。 語法格式如下所示: 在上面的

16、語法格式中,“NOT”是可選參數,使用NOT關鍵字用于判斷字段不是空值。讓IT教學更簡單,讓IT學習更有效4.2 按條件查詢 4.2.4 空值查詢空值查詢 【例4-11】查詢student表中gender為空值的記錄,SQL語句如下所示: 執行結果如下所示:SELECT id,name,grade,gender FROM student WHERE gender IS NULL;讓IT教學更簡單,讓IT學習更有效4.2 按條件查詢 4.2.4 空值查詢空值查詢 【例4-12】查詢student表中gender不為空值的記錄,SQL語句如下所示: 執行結果如下所示:SELECT id,name,

17、grade,gender FROM student WHERE gender IS NOT NULL;讓IT教學更簡單,讓IT學習更有效4.2 按條件查詢 4.2.5 帶帶DISTINCT關鍵字的查詢關鍵字的查詢 在SELECT語句中,可以使用DISTINCT關鍵字來去掉查詢記錄中重復的值。 語法格式如下: 【例4-13】查詢student表中gender字段的值,查詢記錄不能重復,SQL語句如下所示:SELECT DISTINCT 字段名 FROM 表名;SELECT DISTINCT gender FROM student;讓IT教學更簡單,讓IT學習更有效4.2 按條件查詢 4.2.5

18、帶帶DISTINCT關鍵字的查詢關鍵字的查詢 執行結果如下所示: 從查詢記錄可以看到,這次查詢只返回了3條記錄的gender值,分別為“男”、“女”和“NULL”,不再有重復值。讓IT教學更簡單,讓IT學習更有效 多學一招 DISTINCT關鍵字作用多個字段關鍵字作用多個字段 DISTINCT關鍵字可以作用于多個字段,其語法格式如下所示: 在上面的語法格式中,只有DISTINCT關鍵字后指定的多個字段值都相同,才會被認作是重復記錄。讓IT教學更簡單,讓IT學習更有效 多學一招 DISTINCT關鍵字作用多個字段關鍵字作用多個字段 【例4-14】查詢student表中的gender和name字段

19、,使用distinct關鍵字作用于這兩個字段,SQL語句如下所示: 執行結果如下所示:SELECT DISTINCT gender,name FROM student;讓IT教學更簡單,讓IT學習更有效 多學一招 DISTINCT關鍵字作用多個字段關鍵字作用多個字段 從查詢結果可以看到,返回的記錄中gender字段仍然出現了重復值,這是因為DISTINCT關鍵字作用于gender和name兩個字段,只有這兩個字段的值都相同才被認為是重復記錄。 為了能夠演示去除多個字段重復的效果,向student表中添加一條新記錄,SQL語句如下所示: 執行完INSERT語句后,使用SELECT語句查詢 stu

20、dent表中的所有記錄,執行結果如下所示:讓IT教學更簡單,讓IT學習更有效 多學一招 DISTINCT關鍵字作用多個字段關鍵字作用多個字段 從查詢結果可以看到,student表中一共有9條記錄,并且第1條記錄、第9條記錄的name字段和gender字段值相等,分別為“songjiang”和“男”。讓IT教學更簡單,讓IT學習更有效 多學一招 DISTINCT關鍵字作用多個字段關鍵字作用多個字段 接下來再次查詢gender和name字段,并使用distinct作用這兩個字段,執行結果如下所示: 從查詢結果可以看到,只查出了8條記錄,并且gender字段值為“男”,“name”字段值為“song

21、jiang”的記錄只有一條,這說明DISTINCT去除了重復的記錄。讓IT教學更簡單,讓IT學習更有效4.2 按條件查詢 4.2.6 帶帶LIKE關鍵字的查詢關鍵字的查詢 MySQL中提供了LIKE關鍵字,用于對字符串進行模糊查詢。 語法格式如下:NOT是可選參數,使用NOT表示查詢與指定字符串不匹配的記錄?!捌ヅ渥址敝付ㄓ脕砥ヅ涞淖址?,其值可以是一個普通字符串,也可以是包含百分號(%)和下劃線(_)的通配字符串。百分號和下劃線統稱為通配符讓IT教學更簡單,讓IT學習更有效4.2 按條件查詢 4.2.6 帶帶LIKE關鍵字的查詢關鍵字的查詢 通配符 1、百分號(%)通配符 可以匹配任意長

22、度的字符串,包括空字符串。 【例4-15】查找student表中name字段值以字符“s”開頭的學生id,SQL語句如下所示:SELECT id,name FROM student WHERE name LIKE s%;讓IT教學更簡單,讓IT學習更有效4.2 按條件查詢 4.2.6 帶帶LIKE關鍵字的查詢關鍵字的查詢 百分號通配符可以出現在通配字符串的任意位置。 【例4-16】查詢student表中name字段值以字符“w”開始,以字符“g”結束的學生id,執行結果如下所示:讓IT教學更簡單,讓IT學習更有效4.2 按條件查詢 4.2.6 帶帶LIKE關鍵字的查詢關鍵字的查詢 在通配字符串

23、中可以出現多個百分號通配符。 【例4-17】查詢student表中name字段值包含字符“y”的學生id,執行結果如下所示:讓IT教學更簡單,讓IT學習更有效4.2 按條件查詢 4.2.6 帶帶LIKE關鍵字的查詢關鍵字的查詢 LIKE之前可以使用NOT關鍵字,用來查詢與指定通配字符串不匹配的記錄。 【例4-18】查詢student表中name字段值不包含字符“y”的學生id,執行結果如下所示:讓IT教學更簡單,讓IT學習更有效4.2 按條件查詢 4.2.6 帶帶LIKE關鍵字的查詢關鍵字的查詢 通配符 2、下劃線(_)通配符 可以匹配任意長度的字符串,包括空字符串。 查詢student表中n

24、ame字段值以字符串“wu”開始,以字符串“ong”結束,并且兩個字符串之間只有一個字符的記錄,如例4-19所示。 查詢student表中name字段值包含7個字符,并且以字符串“ing”結束的記錄,如例4-20所示。點擊查看例4-19點擊查看例4-20讓IT教學更簡單,讓IT學習更有效4.2 按條件查詢 4.2.6 帶帶LIKE關鍵字的查詢關鍵字的查詢 通配符 2、下劃線(_)通配符 可以匹配任意長度的字符串,包括空字符串。 【例4-19】查詢student表中name字段值以字符串“wu”開始,以字符串“ong”結束,并且兩個字符串之間只有一個字符的記錄,SQL語句如下所示:SELECT

25、* FROM student WHERE name LIKE wu_ong;讓IT教學更簡單,讓IT學習更有效4.2 按條件查詢 4.2.6 帶帶LIKE關鍵字的查詢關鍵字的查詢 【例4-20】查詢student表中name字段值包含7個字符,并且以字符串“ing”結束的記錄,執行結果如下所示: 從查詢結果可以看到,在通配字符串中使用了4個下劃線通配符,它匹配name字段值中“ing”前面的4個字符。讓IT教學更簡單,讓IT學習更有效 多學一招 使用百分號和下劃線通配符進行查詢操作使用百分號和下劃線通配符進行查詢操作 百分號和下劃線是通配符,它們在通配字符串中有特殊含義,因此,如果要匹配字符串

26、中的百分號和下劃線,就需要在通配字符串中使用右斜線(“”)對百分號和下劃線進行轉義,例如,“%”匹配百分號字面值,“_”匹配下劃線字面值。 【例4-21】查詢student表中name字段值包括“%”的記錄。 在查詢之前,首先向student表中添加一條記錄,執行結果如下所示:讓IT教學更簡單,讓IT學習更有效 多學一招 使用百分號和下劃線通配符進行查詢操作使用百分號和下劃線通配符進行查詢操作 從上面的執行語句中可以看到,添加的新記錄其name字段值為“sun%er”,包含一個百分號字面值。接下來通過SELECT語句查出這條記錄,執行結果如下所示: 從查詢結果可以看到,查出了name字段值為“

27、sun%er”的新記錄。讓IT教學更簡單,讓IT學習更有效4.2 按條件查詢 4.2.7 帶帶AND關鍵字的多條件查詢關鍵字的多條件查詢 在MySQL中,提供了一個AND關鍵字,使用AND關鍵字可以連接兩個或者多個查詢條件,只有滿足所有條件的記錄才會被返回。 語法格式如下所示: 從上面的語法格式可以看到,在WHERE關鍵字后面跟了多個條件表達式,每兩個條件表達式之間用AND關鍵字分隔。SELECT *|字段名1,字段名2,FROM 表名WHERE 條件表達式1 AND 條件表達式2 AND 條件表達式n;讓IT教學更簡單,讓IT學習更有效4.2 按條件查詢 4.2.7 帶帶AND關鍵字的多條件

28、查詢關鍵字的多條件查詢 【例4-22】查詢student表中id字段值小于5,并且gender字段值為“女”的學生姓名,SQL語句如下所示: 執行結果如下所示:SELECT id,name,gender FROM student WHERE id5 AND gender=女女;讓IT教學更簡單,讓IT學習更有效4.2 按條件查詢 4.2.7 帶帶AND關鍵字的多條件查詢關鍵字的多條件查詢 【例4-23】查詢student表中id字段值在1、2、3、4之中,name字段值以字符串“ng”結束,并且grade字段值小于80的記錄,SQL語句如下所示: 在SELECT語句中,使用兩個AND關鍵字連接

29、了三個條件表達式,執行結果如下所示:讓IT教學更簡單,讓IT學習更有效4.2 按條件查詢 4.2.8 帶帶OR關鍵字的多條件查詢關鍵字的多條件查詢 在使用SELECT語句查詢數據時,也可以使用OR關鍵字連接多個查詢條件,只要記錄滿足任意一個條件就會被查詢出來。 語法格式如下所示:讓IT教學更簡單,讓IT學習更有效4.2 按條件查詢 4.2.8 帶帶OR關鍵字的多條件查詢關鍵字的多條件查詢 【例4-24】查詢student表中id字段值小于3或者gender字段值為“女”的學生姓名,SQL語句及其執行結果如下所示: 只要記錄滿足OR關鍵字連接的任意一個條件就會被查詢出來,而不需要同時滿足兩個條件

30、表達式。讓IT教學更簡單,讓IT學習更有效4.2 按條件查詢 4.2.8 帶帶OR關鍵字的多條件查詢關鍵字的多條件查詢 【例4-25】查詢student表中滿足條件name字段值以字符“h”開始,或者gender字段值為“女”,或者grade字段值為100的記錄,SQL語句及其執行結果如下所示:讓IT教學更簡單,讓IT學習更有效 多學一招 OR和和AND關鍵字一起使用的情況關鍵字一起使用的情況 AND的優先級高于OR,因此當兩者在一起使用時,應該先運算AND兩邊的條件表達式,再運算OR兩邊的條件表達式。 【例4-21】查詢student表中gender字段值為“女”或者gender字段值為“男

31、”,并且grade字段值為100,的學生姓名,SQL語句及其執行結果如下所示:讓IT教學更簡單,讓IT學習更有效4.3 高級查詢 4.3.1 聚合函數聚合函數 MySQL中提供了一些函數來實現對某些數據進行統計,具體如表4-2所示。 表4-2中的函數用于對一組值進行統計,并返回唯一值,這些函數被稱為聚合函數。函數名稱函數名稱作用作用COUNT()返回某列的行數SUM()返回某列值的和AVG()返回某列的平均值MAX()返回某列的最大值MIN()返回某列的最小值表4-2 聚合函數讓IT教學更簡單,讓IT學習更有效4.3 高級查詢 4.3.1 聚合函數聚合函數 1、COUNT()函數 COUNT(

32、)函數用來統計記錄的條數 語法格式如下所示: 使用上面的語法格式可以求出表中有多少條記錄。SELECT COUNT(*) FROM 表名;讓IT教學更簡單,讓IT學習更有效4.3 高級查詢 4.3.1 聚合函數聚合函數 【例4-22】查詢student表中一共有多少條記錄,SQL語句及其執行結果如下所示: 從查詢結果可以看出,student表中一共有8條記錄。讓IT教學更簡單,讓IT學習更有效4.3 高級查詢 4.3.1 聚合函數聚合函數 2、SUM()函數 SUM()是求和函數,用于求出表中某個字段所有值的總和 語法格式如下所示: 使用上面的語句可以求出指定字段值的總和。SELECT SUM

33、(字段名) FROM 表名;讓IT教學更簡單,讓IT學習更有效4.3 高級查詢 4.3.1 聚合函數聚合函數 【例4-23】求出student表中grade字段的總和,SQL語句及其執行結果如下所示: 從查詢結果可以看到,所有學生grade字段的總和為652。讓IT教學更簡單,讓IT學習更有效4.3 高級查詢 4.3.1 聚合函數聚合函數 3、AVG()函數 AVG()函數用于求出某個字段所有值的平均值 語法格式如下所示: 使用上面的語句可以求出指定字段所有值的平均值。SELECT AVG(字段名) FROM student;讓IT教學更簡單,讓IT學習更有效4.3 高級查詢 4.3.1 聚合

34、函數聚合函數 【例4-24】求出student表中grade字段的平均值,SQL語句及其執行結果如下所示: 從查詢結果可以看到,所有學生grade字段的平均值為81.5。讓IT教學更簡單,讓IT學習更有效4.3 高級查詢 4.3.1 聚合函數聚合函數 4、MAX()函數 MAX()函數是求最大值的函數,用于求出某個字段的最大值 語法格式如下所示: 【例4-25】求出student表中所有學生grade字段的最大值,SQL語句及其執行結果如下所示: 從查詢結果可以看到,所有學生grade字段的最大值為100。SELECT MAX(grade) FROM student;讓IT教學更簡單,讓IT學

35、習更有效4.3 高級查詢 4.3.1 聚合函數聚合函數 5、MIN()函數 MIN()函數是求最小值的函數,用于求出某個字段的最小值。 語法格式如下所示: 【例4-26】求出student表中grade字段的最小值,SQL語句如下所示: 從查詢結果可以看到,所有學生grade字段的最小值為40。SELECT MIN(grade) FROM student;讓IT教學更簡單,讓IT學習更有效4.3 高級查詢 4.3.2 對查詢結果排序對查詢結果排序 為了使查詢結果滿足用戶的要求,可以使用ORDER BY對查詢結果進行排序。 語法格式如下所示: 參數ASC表示按照升序進行排序,DESC表示按照降序

36、進行排序。默認情況下,按照ASC方式進行排序。SELECT 字段名1,字段名2,FROM 表名ORDER BY 字段名1 ASC | DESC,字段名2 ASC | DESC讓IT教學更簡單,讓IT學習更有效4.3 高級查詢 4.3.2 對查詢結果排序對查詢結果排序 【例4-27】查出student表中的所有記錄,并按照grade字段進行排序,SQL語句及其執行結果如下所示: 從查詢結果可以看到,返回的記錄按照ORDER BY指定的字段grade進行排序,并且默認是按升序排列。讓IT教學更簡單,讓IT學習更有效4.3 高級查詢 4.3.2 對查詢結果排序對查詢結果排序 【例4-28】查出stu

37、dent表中的所有記錄,使用參數ASC按照grade字段升序方式排列,SQL語句及其執行結果如下所示: 從查詢結果可以看到,在ORDER BY中使用了ASC關鍵字,返回結果和例4-27查詢的結果一致。讓IT教學更簡單,讓IT學習更有效4.3 高級查詢 4.3.2 對查詢結果排序對查詢結果排序 【例4-29】查出student表中的所有記錄,使用參數DESC按照grade字段降序方式排列,SQL語句及其執行結果如下所示: 從查詢結果可以看到,在ORDER BY中使用了DESC關鍵字,返回的記錄按照grade字段的降序進行排列。讓IT教學更簡單,讓IT學習更有效4.3 高級查詢 4.3.2 對查詢

38、結果排序對查詢結果排序 【例4-30】查詢student表中的所有記錄,按照gender字段的升序和grade字段的降序進行排列,SQL語句及其執行結果如下所示:讓IT教學更簡單,讓IT學習更有效4.3 高級查詢 4.3.3 分組查詢分組查詢 在MySQL中,可以使用GROUP BY按某個字段或者多個字段中的值進行分組,字段中值相同的為一組。 語法格式如下所示:指定的字段名1、字段名2等是對查詢結果分組的依據。HAVING關鍵字指定條件表達式對分組后的內容進行過濾。需要特別注意的是,GROUP BY一般和聚合函數一起使用,如果查詢的字段出現在GROUP BY后,卻沒有沒有包含在聚合函數中,該字

39、段顯示的是分組后的第一條記錄的值,這樣有可能會導致查詢結果不符合我們的預期。讓IT教學更簡單,讓IT學習更有效4.3 高級查詢 4.3.3 分組查詢分組查詢 1、單獨使用GROUP BY分組 單獨使用group by關鍵字,查詢的是每個分組中的一條記錄。 【例4-31】查詢student表中的記錄,按照gender字段值進行分組,SQL語句及其執行結果如下所示:讓IT教學更簡單,讓IT學習更有效4.3 高級查詢 4.3.3 分組查詢分組查詢 2、GROUP BY和聚合函數一起使用 GROUP BY和聚合函數一起使用,可以統計出某個或者某些字段在一個分組中的最大值、最小值、平均值等等。 【例4-

40、32】將student表按照gender字段值進行分組查詢,計算出每個分組中各有多少名學生,SQL語句及其執行結果如下所示:讓IT教學更簡單,讓IT學習更有效4.3 高級查詢 4.3.3 分組查詢分組查詢 3、GROUP BY和HAVING關鍵字一起使用 HAVING關鍵字和WHERE關鍵字的作用相同,都用于設置條件表達式對查詢結果進行過濾。 HAVING關鍵字和WHERE關鍵字的區別在于,HAVING關鍵字后可以跟聚合函數,而WHERE關鍵字不能。通常情況下HAVING關鍵字都和GROUP BY一起使用,用于對分組后的結果進行過濾。讓IT教學更簡單,讓IT學習更有效4.3 高級查詢 4.3.3 分組查詢分組查詢 【例4-33】將student表按照gender字段進行分組查詢,查詢出grade字段值之和小于300的分組,SQL語句及其執行結果如下所示:讓IT教學更簡單,讓IT學習更有效4.3 高級查詢 4.3.4 使用使用LIMIT限制查詢結果的數量限制查詢結果的數量 MySQL中提供了一個關鍵字LIMIT,可以指定查詢結果從哪一條記錄開始以及一共查詢多少條信息。 語法格式如下所示:SELECT 字段名1,字段名2,FROM 表名LIMIT OFFSET, 記錄數讓IT教學更簡單,讓IT學習更有效4.3 高級查詢 4

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論