版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、讓IT教學(xué)更簡單,讓IT學(xué)習(xí)更有效讓IT教學(xué)更簡單,讓IT學(xué)習(xí)更有效第四章 單表查詢簡單查詢高級查詢按條件查詢?yōu)楸砗妥侄稳e名讓IT教學(xué)更簡單,讓IT學(xué)習(xí)更有效 學(xué)習(xí)目標掌握簡單查詢、按條件查詢12熟悉高級查詢3了解為表和字段取別名掌握了解熟悉讓IT教學(xué)更簡單,讓IT學(xué)習(xí)更有效 目錄簡單查詢4.14.1點擊查看本小節(jié)知識架構(gòu)按條件查詢4.24.2點擊查看本小節(jié)知識架構(gòu)高級查詢4.34.3為表和字段取別名4.44.4點擊查看本小節(jié)知識架構(gòu)點擊查看本小節(jié)知識架構(gòu)讓IT教學(xué)更簡單,讓IT學(xué)習(xí)更有效 知識架構(gòu)4.1 簡單查詢返回目錄4.1.1SELECT語句4.1.2查詢所有字段4.1.3查詢指定字段
2、讓IT教學(xué)更簡單,讓IT學(xué)習(xí)更有效 知識架構(gòu)4.2 按條件查詢返回目錄4.2.1帶關(guān)系運算符的查詢4.2.2帶IN關(guān)鍵字的查詢4.2.3帶BETWEEN AND關(guān)鍵字的查詢4.2.4空值查詢4.2.5帶DISTINCT關(guān)鍵字的查詢4.2.6帶LIKE關(guān)鍵字的查詢4.2.7帶AND關(guān)鍵字的多條件查詢4.2.8帶OR關(guān)鍵字的多條件查詢讓IT教學(xué)更簡單,讓IT學(xué)習(xí)更有效 知識架構(gòu)4.3 高級查詢返回目錄4.3.1聚合函數(shù)4.3.2對查詢結(jié)果排序4.3.3分組查詢4.3.4使用LIMIT限制查詢結(jié)果的數(shù)量4.3.5函數(shù)(列表)讓IT教學(xué)更簡單,讓IT學(xué)習(xí)更有效 知識架構(gòu)4.4 為表和字段為表和字段取別
3、名返回目錄4.4.1為表取別名4.4.2為字段取別名讓IT教學(xué)更簡單,讓IT學(xué)習(xí)更有效4.1 簡單查詢 4.1.1 SELECT語句語句 SELECT語句的基本語法格式如下:“字段名1,字段名2”表示從表中查詢的指定字段,星號(“*”)通配符表示表中所有字段,兩者為互斥關(guān)系,任選其一“DISTINCT”是可選參數(shù),用于剔除查詢結(jié)果中重復(fù)的數(shù)據(jù)表示從指定的表中查詢數(shù)據(jù)“WHERE”是可選參數(shù),用于指定查詢條件“GROUP BY”是可選參數(shù),用于將查詢結(jié)果按照指定字段進行分組,“HAVING”也是可選參數(shù),用于對分組后的結(jié)果進行過濾“ORDER BY”是可選參數(shù),用于將查詢結(jié)果按照指定字段進行排序
4、。排序方式由參數(shù)ASC或DESC控制,其中ASC表示按升序進行排列,DESC表示按降序進行排列。如果不指定參數(shù),默認為升序排列?!癓IMIT”是可選參數(shù),用于限制查詢結(jié)果的數(shù)量。LIMIT后面可以跟2個參數(shù),第一個參數(shù)“OFFSET”表示偏移量,如果偏移量為0則從查詢結(jié)果的第一條記錄開始,偏移量為1則從查詢結(jié)果的中第二條記錄開始以此類推。OFFSET為可選值,如果不指定其默認值為0。第二個參數(shù)“記錄數(shù)”表示返回查詢記錄的條數(shù)。讓IT教學(xué)更簡單,讓IT學(xué)習(xí)更有效4.1 簡單查詢 4.1.2 查詢所有字段查詢所有字段 1、在SELECT語句中指定所有字段 在SELECT語句中列出所有字段名來查詢表
5、中的數(shù)據(jù),其語法格式如下: 在上述語法格式中,“字段名1、字段名2”表示查詢的字段名,這里需要列出表中所有的字段名。SELECT 字段名1,字段名2, FROM 表名讓IT教學(xué)更簡單,讓IT學(xué)習(xí)更有效4.1 簡單查詢 4.1.2 查詢所有字段查詢所有字段 【例4-1】查詢student表中的所有記錄。 為了實現(xiàn)查詢功能,首先創(chuàng)建一個數(shù)據(jù)庫chapter04,創(chuàng)建數(shù)據(jù)庫的SQL語句如下所示: 選擇使用chapter04數(shù)據(jù)庫,SQL語句如下所示: 在數(shù)據(jù)庫chapter04中創(chuàng)建表student,創(chuàng)建student表的SQL語句如下所示:CREATE DATABASE chapter04;USE
6、 chapter04;讓IT教學(xué)更簡單,讓IT學(xué)習(xí)更有效4.1 簡單查詢 4.1.2 查詢所有字段查詢所有字段 執(zhí)行SQL語句創(chuàng)建student表,然后使用INSERT語句向student表中插入8條記錄,INSERT語句如下所示: INSERT語句執(zhí)行成功后,接下來通過SELECT語句查詢student表中的記錄,SQL語句如下所示:SELECT id,name,grade,gender FROM student;讓IT教學(xué)更簡單,讓IT學(xué)習(xí)更有效4.1 簡單查詢 4.1.2 查詢所有字段查詢所有字段 查詢結(jié)果如下所示: 從查詢結(jié)果可以看出,SELECT語句成功地查出了表中所有字段的數(shù)據(jù)。讓
7、IT教學(xué)更簡單,讓IT學(xué)習(xí)更有效4.1 簡單查詢 4.1.2 查詢所有字段查詢所有字段 需要注意的是,在SELECT語句的查詢字段列表中,字段的順序是可以改變的,無需按照其表中定義的順序進行排列,例如,在SELECT語句中將name字段放在查詢列表的最后一列,執(zhí)行結(jié)果如下所示:讓IT教學(xué)更簡單,讓IT學(xué)習(xí)更有效4.1 簡單查詢 4.1.2 查詢所有字段查詢所有字段 2、在、在SELECT語句中使用星號語句中使用星號(“*”)通配符代替所有字段通配符代替所有字段 在SELECT語句中列出所有字段名來查詢表中的數(shù)據(jù),其語法格式如下: 【例4-2】在SELECT語句中使用星號(“*”)通配符查詢st
8、udent表中的所有字段,SQL語句如下所示: 注意:一般情況下,除非需要使用表中所有字段的數(shù)據(jù),否則最好不要使用星號通配符,使用通配符雖然可以節(jié)省輸入查詢語句的時間,但由于獲取的數(shù)據(jù)過多會降低查詢的效率。SELECT * FROM 表名;SELECT * FROM student;讓IT教學(xué)更簡單,讓IT學(xué)習(xí)更有效4.1 簡單查詢 4.1.3 查詢指定字段查詢指定字段 查詢數(shù)據(jù)時,可以在SELECT語句的字段列表中指定要查詢的字段,這種方式只針對部分字段進行查詢,不會查詢所有字段。 查詢指定字段語法格式如下所示: 在上面的語法格式中“字段名1,字段名2,”表示表中的字段名稱,這里只需指定表中
9、部分字段的名稱。SELECT 字段名1,字段名2, FROM 表名;讓IT教學(xué)更簡單,讓IT學(xué)習(xí)更有效4.1 簡單查詢 4.1.3 查詢指定字段查詢指定字段 【例4-3】使用SELECT語句查詢student表中name字段和gender字段的數(shù)據(jù)。 查詢語句如下: 如果在SELECT語句中改變查詢字段的順序,查詢結(jié)果中字段顯示的順序也會做相應(yīng)改變,例如,將SELECT語句中的name字段和gender字段位置互換,查詢語句如下:SELECT name,gender FROM student;SELECT gender,name FROM student;讓IT教學(xué)更簡單,讓IT學(xué)習(xí)更有效4.
10、2 按條件查詢 4.2.1 關(guān)系運算符的查詢關(guān)系運算符的查詢 在SELECT語句中,最常見的是使用WHERE子句指定查詢條件對數(shù)據(jù)進行過濾,其語法格式如下: 在MySQL中,常見的關(guān)系運算符如表4-1所示:關(guān)系運算符關(guān)系運算符說明說明=等于 不等于!=不等于 小于 大于=大于等于表4-1 關(guān)系運算符讓IT教學(xué)更簡單,讓IT學(xué)習(xí)更有效4.2 按條件查詢 4.2.1 關(guān)系運算符的查詢關(guān)系運算符的查詢 需要說明的是“”運算符和“!=”等價,都表示不等于。 接下來以表4-1中的“=”、“”關(guān)系運算符為例,將它們作為查詢條件對數(shù)據(jù)進行過濾。 【例4-4】查詢student表中id為4的學(xué)生姓名,SQL語
11、句如下所示: 在SELECT語句中使用“=”運算符獲取id值為4的數(shù)據(jù),執(zhí)行SELECT語句,結(jié)果如下所示:SELECT id,name FROM student WHERE id=4;讓IT教學(xué)更簡單,讓IT學(xué)習(xí)更有效4.2 按條件查詢 4.2.1 關(guān)系運算符的查詢關(guān)系運算符的查詢 【例4-5】使用SELECT語句查詢name為“wusong”的學(xué)生性別,執(zhí)行結(jié)果如下所示:讓IT教學(xué)更簡單,讓IT學(xué)習(xí)更有效4.2 按條件查詢 4.2.1 關(guān)系運算符的查詢關(guān)系運算符的查詢 【例4-6】查詢student表中g(shù)rade大于80的學(xué)生姓名,執(zhí)行結(jié)果如下所示:讓IT教學(xué)更簡單,讓IT學(xué)習(xí)更有效4.2
12、 按條件查詢 4.2.2 帶帶IN關(guān)鍵字的查詢關(guān)鍵字的查詢 IN關(guān)鍵字用于判斷某個字段的值是否在指定集合中,如果字段的值在集合中,則滿足條件,該字段所在的記錄將被查詢出來。 語法格式如下所示: 在上面的語法格式中,“元素1、元素2”表示集合中的元素,即指定的條件范圍。NOT是可選參數(shù),使用NOT表示查詢不在IN關(guān)鍵字指定集合范圍中的記錄。讓IT教學(xué)更簡單,讓IT學(xué)習(xí)更有效4.2 按條件查詢 4.2.2 帶帶IN關(guān)鍵字的查詢關(guān)鍵字的查詢 【例4-7】查詢student表中id值為1、2、3的記錄,SQL語句如下所示: 執(zhí)行結(jié)果如下所示:SELECT id,grade,name,gender FR
13、OM student WHERE id IN(1,2,3);讓IT教學(xué)更簡單,讓IT學(xué)習(xí)更有效4.2 按條件查詢 4.2.2 帶帶IN關(guān)鍵字的查詢關(guān)鍵字的查詢 【例4-8】查詢student表中id值不為1、2、3的記錄,SQL語句如下所示: 執(zhí)行結(jié)果如下所示:SELECT id,grade,name,gender FROM student WHERE id NOT IN(1,2,3);讓IT教學(xué)更簡單,讓IT學(xué)習(xí)更有效4.2 按條件查詢 4.2.3 帶帶BETWEEN AND關(guān)鍵字的查詢關(guān)鍵字的查詢 BETWEEN AND用于判斷某個字段的值是否在指定的范圍之內(nèi),如果字段的值在指定范圍內(nèi),則
14、滿足條件,該字段所在的記錄將被查詢出來,反之則不會被查詢出來。 語法格式如下所示: 在上面的語法格式中,“值1”表示范圍條件的起始值,“值2”表示范圍條件的結(jié)束值。NOT是可選參數(shù),使用NOT表示查詢指定范圍之外的記錄,通常情況下“值1”小于“值2”,否則查詢不到任何結(jié)果。讓IT教學(xué)更簡單,讓IT學(xué)習(xí)更有效4.2 按條件查詢 4.2.3 帶帶BETWEEN AND關(guān)鍵字的查詢關(guān)鍵字的查詢 【例4-9】查詢student表中id值在2和5之間的學(xué)生姓名,SQL語句如下所示: 執(zhí)行結(jié)果如下所示:SELECT id,name FROM student WHERE id BETWEEN 2 AND 5
15、;讓IT教學(xué)更簡單,讓IT學(xué)習(xí)更有效4.2 按條件查詢 4.2.3 帶帶BETWEEN AND關(guān)鍵字的查詢關(guān)鍵字的查詢 【例4-10】查詢student表中id值不在2和5之間的學(xué)生姓名,SQL語句如下所示: 執(zhí)行結(jié)果如下所示:SELECT id,name FROM student WHERE id NOT BETWEEN 2 AND 5;讓IT教學(xué)更簡單,讓IT學(xué)習(xí)更有效4.2 按條件查詢 4.2.4 空值查詢空值查詢 在數(shù)據(jù)表中,某些列的值可能為空值(NULL),空值不同于0,也不同于空字符串。在MySQL中,使用IS NULL關(guān)鍵字來判斷字段的值是否為空值。 語法格式如下所示: 在上面的
16、語法格式中,“NOT”是可選參數(shù),使用NOT關(guān)鍵字用于判斷字段不是空值。讓IT教學(xué)更簡單,讓IT學(xué)習(xí)更有效4.2 按條件查詢 4.2.4 空值查詢空值查詢 【例4-11】查詢student表中g(shù)ender為空值的記錄,SQL語句如下所示: 執(zhí)行結(jié)果如下所示:SELECT id,name,grade,gender FROM student WHERE gender IS NULL;讓IT教學(xué)更簡單,讓IT學(xué)習(xí)更有效4.2 按條件查詢 4.2.4 空值查詢空值查詢 【例4-12】查詢student表中g(shù)ender不為空值的記錄,SQL語句如下所示: 執(zhí)行結(jié)果如下所示:SELECT id,name,
17、grade,gender FROM student WHERE gender IS NOT NULL;讓IT教學(xué)更簡單,讓IT學(xué)習(xí)更有效4.2 按條件查詢 4.2.5 帶帶DISTINCT關(guān)鍵字的查詢關(guān)鍵字的查詢 在SELECT語句中,可以使用DISTINCT關(guān)鍵字來去掉查詢記錄中重復(fù)的值。 語法格式如下: 【例4-13】查詢student表中g(shù)ender字段的值,查詢記錄不能重復(fù),SQL語句如下所示:SELECT DISTINCT 字段名 FROM 表名;SELECT DISTINCT gender FROM student;讓IT教學(xué)更簡單,讓IT學(xué)習(xí)更有效4.2 按條件查詢 4.2.5
18、帶帶DISTINCT關(guān)鍵字的查詢關(guān)鍵字的查詢 執(zhí)行結(jié)果如下所示: 從查詢記錄可以看到,這次查詢只返回了3條記錄的gender值,分別為“男”、“女”和“NULL”,不再有重復(fù)值。讓IT教學(xué)更簡單,讓IT學(xué)習(xí)更有效 多學(xué)一招 DISTINCT關(guān)鍵字作用多個字段關(guān)鍵字作用多個字段 DISTINCT關(guān)鍵字可以作用于多個字段,其語法格式如下所示: 在上面的語法格式中,只有DISTINCT關(guān)鍵字后指定的多個字段值都相同,才會被認作是重復(fù)記錄。讓IT教學(xué)更簡單,讓IT學(xué)習(xí)更有效 多學(xué)一招 DISTINCT關(guān)鍵字作用多個字段關(guān)鍵字作用多個字段 【例4-14】查詢student表中的gender和name字段
19、,使用distinct關(guān)鍵字作用于這兩個字段,SQL語句如下所示: 執(zhí)行結(jié)果如下所示:SELECT DISTINCT gender,name FROM student;讓IT教學(xué)更簡單,讓IT學(xué)習(xí)更有效 多學(xué)一招 DISTINCT關(guān)鍵字作用多個字段關(guān)鍵字作用多個字段 從查詢結(jié)果可以看到,返回的記錄中g(shù)ender字段仍然出現(xiàn)了重復(fù)值,這是因為DISTINCT關(guān)鍵字作用于gender和name兩個字段,只有這兩個字段的值都相同才被認為是重復(fù)記錄。 為了能夠演示去除多個字段重復(fù)的效果,向student表中添加一條新記錄,SQL語句如下所示: 執(zhí)行完INSERT語句后,使用SELECT語句查詢 stu
20、dent表中的所有記錄,執(zhí)行結(jié)果如下所示:讓IT教學(xué)更簡單,讓IT學(xué)習(xí)更有效 多學(xué)一招 DISTINCT關(guān)鍵字作用多個字段關(guān)鍵字作用多個字段 從查詢結(jié)果可以看到,student表中一共有9條記錄,并且第1條記錄、第9條記錄的name字段和gender字段值相等,分別為“songjiang”和“男”。讓IT教學(xué)更簡單,讓IT學(xué)習(xí)更有效 多學(xué)一招 DISTINCT關(guān)鍵字作用多個字段關(guān)鍵字作用多個字段 接下來再次查詢gender和name字段,并使用distinct作用這兩個字段,執(zhí)行結(jié)果如下所示: 從查詢結(jié)果可以看到,只查出了8條記錄,并且gender字段值為“男”,“name”字段值為“song
21、jiang”的記錄只有一條,這說明DISTINCT去除了重復(fù)的記錄。讓IT教學(xué)更簡單,讓IT學(xué)習(xí)更有效4.2 按條件查詢 4.2.6 帶帶LIKE關(guān)鍵字的查詢關(guān)鍵字的查詢 MySQL中提供了LIKE關(guān)鍵字,用于對字符串進行模糊查詢。 語法格式如下:NOT是可選參數(shù),使用NOT表示查詢與指定字符串不匹配的記錄?!捌ヅ渥址敝付ㄓ脕砥ヅ涞淖址?,其值可以是一個普通字符串,也可以是包含百分號(%)和下劃線(_)的通配字符串。百分號和下劃線統(tǒng)稱為通配符讓IT教學(xué)更簡單,讓IT學(xué)習(xí)更有效4.2 按條件查詢 4.2.6 帶帶LIKE關(guān)鍵字的查詢關(guān)鍵字的查詢 通配符 1、百分號(%)通配符 可以匹配任意長
22、度的字符串,包括空字符串。 【例4-15】查找student表中name字段值以字符“s”開頭的學(xué)生id,SQL語句如下所示:SELECT id,name FROM student WHERE name LIKE s%;讓IT教學(xué)更簡單,讓IT學(xué)習(xí)更有效4.2 按條件查詢 4.2.6 帶帶LIKE關(guān)鍵字的查詢關(guān)鍵字的查詢 百分號通配符可以出現(xiàn)在通配字符串的任意位置。 【例4-16】查詢student表中name字段值以字符“w”開始,以字符“g”結(jié)束的學(xué)生id,執(zhí)行結(jié)果如下所示:讓IT教學(xué)更簡單,讓IT學(xué)習(xí)更有效4.2 按條件查詢 4.2.6 帶帶LIKE關(guān)鍵字的查詢關(guān)鍵字的查詢 在通配字符串
23、中可以出現(xiàn)多個百分號通配符。 【例4-17】查詢student表中name字段值包含字符“y”的學(xué)生id,執(zhí)行結(jié)果如下所示:讓IT教學(xué)更簡單,讓IT學(xué)習(xí)更有效4.2 按條件查詢 4.2.6 帶帶LIKE關(guān)鍵字的查詢關(guān)鍵字的查詢 LIKE之前可以使用NOT關(guān)鍵字,用來查詢與指定通配字符串不匹配的記錄。 【例4-18】查詢student表中name字段值不包含字符“y”的學(xué)生id,執(zhí)行結(jié)果如下所示:讓IT教學(xué)更簡單,讓IT學(xué)習(xí)更有效4.2 按條件查詢 4.2.6 帶帶LIKE關(guān)鍵字的查詢關(guān)鍵字的查詢 通配符 2、下劃線(_)通配符 可以匹配任意長度的字符串,包括空字符串。 查詢student表中n
24、ame字段值以字符串“wu”開始,以字符串“ong”結(jié)束,并且兩個字符串之間只有一個字符的記錄,如例4-19所示。 查詢student表中name字段值包含7個字符,并且以字符串“ing”結(jié)束的記錄,如例4-20所示。點擊查看例4-19點擊查看例4-20讓IT教學(xué)更簡單,讓IT學(xué)習(xí)更有效4.2 按條件查詢 4.2.6 帶帶LIKE關(guān)鍵字的查詢關(guān)鍵字的查詢 通配符 2、下劃線(_)通配符 可以匹配任意長度的字符串,包括空字符串。 【例4-19】查詢student表中name字段值以字符串“wu”開始,以字符串“ong”結(jié)束,并且兩個字符串之間只有一個字符的記錄,SQL語句如下所示:SELECT
25、* FROM student WHERE name LIKE wu_ong;讓IT教學(xué)更簡單,讓IT學(xué)習(xí)更有效4.2 按條件查詢 4.2.6 帶帶LIKE關(guān)鍵字的查詢關(guān)鍵字的查詢 【例4-20】查詢student表中name字段值包含7個字符,并且以字符串“ing”結(jié)束的記錄,執(zhí)行結(jié)果如下所示: 從查詢結(jié)果可以看到,在通配字符串中使用了4個下劃線通配符,它匹配name字段值中“ing”前面的4個字符。讓IT教學(xué)更簡單,讓IT學(xué)習(xí)更有效 多學(xué)一招 使用百分號和下劃線通配符進行查詢操作使用百分號和下劃線通配符進行查詢操作 百分號和下劃線是通配符,它們在通配字符串中有特殊含義,因此,如果要匹配字符串
26、中的百分號和下劃線,就需要在通配字符串中使用右斜線(“”)對百分號和下劃線進行轉(zhuǎn)義,例如,“%”匹配百分號字面值,“_”匹配下劃線字面值。 【例4-21】查詢student表中name字段值包括“%”的記錄。 在查詢之前,首先向student表中添加一條記錄,執(zhí)行結(jié)果如下所示:讓IT教學(xué)更簡單,讓IT學(xué)習(xí)更有效 多學(xué)一招 使用百分號和下劃線通配符進行查詢操作使用百分號和下劃線通配符進行查詢操作 從上面的執(zhí)行語句中可以看到,添加的新記錄其name字段值為“sun%er”,包含一個百分號字面值。接下來通過SELECT語句查出這條記錄,執(zhí)行結(jié)果如下所示: 從查詢結(jié)果可以看到,查出了name字段值為“
27、sun%er”的新記錄。讓IT教學(xué)更簡單,讓IT學(xué)習(xí)更有效4.2 按條件查詢 4.2.7 帶帶AND關(guān)鍵字的多條件查詢關(guān)鍵字的多條件查詢 在MySQL中,提供了一個AND關(guān)鍵字,使用AND關(guān)鍵字可以連接兩個或者多個查詢條件,只有滿足所有條件的記錄才會被返回。 語法格式如下所示: 從上面的語法格式可以看到,在WHERE關(guān)鍵字后面跟了多個條件表達式,每兩個條件表達式之間用AND關(guān)鍵字分隔。SELECT *|字段名1,字段名2,FROM 表名WHERE 條件表達式1 AND 條件表達式2 AND 條件表達式n;讓IT教學(xué)更簡單,讓IT學(xué)習(xí)更有效4.2 按條件查詢 4.2.7 帶帶AND關(guān)鍵字的多條件
28、查詢關(guān)鍵字的多條件查詢 【例4-22】查詢student表中id字段值小于5,并且gender字段值為“女”的學(xué)生姓名,SQL語句如下所示: 執(zhí)行結(jié)果如下所示:SELECT id,name,gender FROM student WHERE id5 AND gender=女女;讓IT教學(xué)更簡單,讓IT學(xué)習(xí)更有效4.2 按條件查詢 4.2.7 帶帶AND關(guān)鍵字的多條件查詢關(guān)鍵字的多條件查詢 【例4-23】查詢student表中id字段值在1、2、3、4之中,name字段值以字符串“ng”結(jié)束,并且grade字段值小于80的記錄,SQL語句如下所示: 在SELECT語句中,使用兩個AND關(guān)鍵字連接
29、了三個條件表達式,執(zhí)行結(jié)果如下所示:讓IT教學(xué)更簡單,讓IT學(xué)習(xí)更有效4.2 按條件查詢 4.2.8 帶帶OR關(guān)鍵字的多條件查詢關(guān)鍵字的多條件查詢 在使用SELECT語句查詢數(shù)據(jù)時,也可以使用OR關(guān)鍵字連接多個查詢條件,只要記錄滿足任意一個條件就會被查詢出來。 語法格式如下所示:讓IT教學(xué)更簡單,讓IT學(xué)習(xí)更有效4.2 按條件查詢 4.2.8 帶帶OR關(guān)鍵字的多條件查詢關(guān)鍵字的多條件查詢 【例4-24】查詢student表中id字段值小于3或者gender字段值為“女”的學(xué)生姓名,SQL語句及其執(zhí)行結(jié)果如下所示: 只要記錄滿足OR關(guān)鍵字連接的任意一個條件就會被查詢出來,而不需要同時滿足兩個條件
30、表達式。讓IT教學(xué)更簡單,讓IT學(xué)習(xí)更有效4.2 按條件查詢 4.2.8 帶帶OR關(guān)鍵字的多條件查詢關(guān)鍵字的多條件查詢 【例4-25】查詢student表中滿足條件name字段值以字符“h”開始,或者gender字段值為“女”,或者grade字段值為100的記錄,SQL語句及其執(zhí)行結(jié)果如下所示:讓IT教學(xué)更簡單,讓IT學(xué)習(xí)更有效 多學(xué)一招 OR和和AND關(guān)鍵字一起使用的情況關(guān)鍵字一起使用的情況 AND的優(yōu)先級高于OR,因此當兩者在一起使用時,應(yīng)該先運算AND兩邊的條件表達式,再運算OR兩邊的條件表達式。 【例4-21】查詢student表中g(shù)ender字段值為“女”或者gender字段值為“男
31、”,并且grade字段值為100,的學(xué)生姓名,SQL語句及其執(zhí)行結(jié)果如下所示:讓IT教學(xué)更簡單,讓IT學(xué)習(xí)更有效4.3 高級查詢 4.3.1 聚合函數(shù)聚合函數(shù) MySQL中提供了一些函數(shù)來實現(xiàn)對某些數(shù)據(jù)進行統(tǒng)計,具體如表4-2所示。 表4-2中的函數(shù)用于對一組值進行統(tǒng)計,并返回唯一值,這些函數(shù)被稱為聚合函數(shù)。函數(shù)名稱函數(shù)名稱作用作用COUNT()返回某列的行數(shù)SUM()返回某列值的和AVG()返回某列的平均值MAX()返回某列的最大值MIN()返回某列的最小值表4-2 聚合函數(shù)讓IT教學(xué)更簡單,讓IT學(xué)習(xí)更有效4.3 高級查詢 4.3.1 聚合函數(shù)聚合函數(shù) 1、COUNT()函數(shù) COUNT(
32、)函數(shù)用來統(tǒng)計記錄的條數(shù) 語法格式如下所示: 使用上面的語法格式可以求出表中有多少條記錄。SELECT COUNT(*) FROM 表名;讓IT教學(xué)更簡單,讓IT學(xué)習(xí)更有效4.3 高級查詢 4.3.1 聚合函數(shù)聚合函數(shù) 【例4-22】查詢student表中一共有多少條記錄,SQL語句及其執(zhí)行結(jié)果如下所示: 從查詢結(jié)果可以看出,student表中一共有8條記錄。讓IT教學(xué)更簡單,讓IT學(xué)習(xí)更有效4.3 高級查詢 4.3.1 聚合函數(shù)聚合函數(shù) 2、SUM()函數(shù) SUM()是求和函數(shù),用于求出表中某個字段所有值的總和 語法格式如下所示: 使用上面的語句可以求出指定字段值的總和。SELECT SUM
33、(字段名) FROM 表名;讓IT教學(xué)更簡單,讓IT學(xué)習(xí)更有效4.3 高級查詢 4.3.1 聚合函數(shù)聚合函數(shù) 【例4-23】求出student表中g(shù)rade字段的總和,SQL語句及其執(zhí)行結(jié)果如下所示: 從查詢結(jié)果可以看到,所有學(xué)生grade字段的總和為652。讓IT教學(xué)更簡單,讓IT學(xué)習(xí)更有效4.3 高級查詢 4.3.1 聚合函數(shù)聚合函數(shù) 3、AVG()函數(shù) AVG()函數(shù)用于求出某個字段所有值的平均值 語法格式如下所示: 使用上面的語句可以求出指定字段所有值的平均值。SELECT AVG(字段名) FROM student;讓IT教學(xué)更簡單,讓IT學(xué)習(xí)更有效4.3 高級查詢 4.3.1 聚合
34、函數(shù)聚合函數(shù) 【例4-24】求出student表中g(shù)rade字段的平均值,SQL語句及其執(zhí)行結(jié)果如下所示: 從查詢結(jié)果可以看到,所有學(xué)生grade字段的平均值為81.5。讓IT教學(xué)更簡單,讓IT學(xué)習(xí)更有效4.3 高級查詢 4.3.1 聚合函數(shù)聚合函數(shù) 4、MAX()函數(shù) MAX()函數(shù)是求最大值的函數(shù),用于求出某個字段的最大值 語法格式如下所示: 【例4-25】求出student表中所有學(xué)生grade字段的最大值,SQL語句及其執(zhí)行結(jié)果如下所示: 從查詢結(jié)果可以看到,所有學(xué)生grade字段的最大值為100。SELECT MAX(grade) FROM student;讓IT教學(xué)更簡單,讓IT學(xué)
35、習(xí)更有效4.3 高級查詢 4.3.1 聚合函數(shù)聚合函數(shù) 5、MIN()函數(shù) MIN()函數(shù)是求最小值的函數(shù),用于求出某個字段的最小值。 語法格式如下所示: 【例4-26】求出student表中g(shù)rade字段的最小值,SQL語句如下所示: 從查詢結(jié)果可以看到,所有學(xué)生grade字段的最小值為40。SELECT MIN(grade) FROM student;讓IT教學(xué)更簡單,讓IT學(xué)習(xí)更有效4.3 高級查詢 4.3.2 對查詢結(jié)果排序?qū)Σ樵兘Y(jié)果排序 為了使查詢結(jié)果滿足用戶的要求,可以使用ORDER BY對查詢結(jié)果進行排序。 語法格式如下所示: 參數(shù)ASC表示按照升序進行排序,DESC表示按照降序
36、進行排序。默認情況下,按照ASC方式進行排序。SELECT 字段名1,字段名2,FROM 表名ORDER BY 字段名1 ASC | DESC,字段名2 ASC | DESC讓IT教學(xué)更簡單,讓IT學(xué)習(xí)更有效4.3 高級查詢 4.3.2 對查詢結(jié)果排序?qū)Σ樵兘Y(jié)果排序 【例4-27】查出student表中的所有記錄,并按照grade字段進行排序,SQL語句及其執(zhí)行結(jié)果如下所示: 從查詢結(jié)果可以看到,返回的記錄按照ORDER BY指定的字段grade進行排序,并且默認是按升序排列。讓IT教學(xué)更簡單,讓IT學(xué)習(xí)更有效4.3 高級查詢 4.3.2 對查詢結(jié)果排序?qū)Σ樵兘Y(jié)果排序 【例4-28】查出stu
37、dent表中的所有記錄,使用參數(shù)ASC按照grade字段升序方式排列,SQL語句及其執(zhí)行結(jié)果如下所示: 從查詢結(jié)果可以看到,在ORDER BY中使用了ASC關(guān)鍵字,返回結(jié)果和例4-27查詢的結(jié)果一致。讓IT教學(xué)更簡單,讓IT學(xué)習(xí)更有效4.3 高級查詢 4.3.2 對查詢結(jié)果排序?qū)Σ樵兘Y(jié)果排序 【例4-29】查出student表中的所有記錄,使用參數(shù)DESC按照grade字段降序方式排列,SQL語句及其執(zhí)行結(jié)果如下所示: 從查詢結(jié)果可以看到,在ORDER BY中使用了DESC關(guān)鍵字,返回的記錄按照grade字段的降序進行排列。讓IT教學(xué)更簡單,讓IT學(xué)習(xí)更有效4.3 高級查詢 4.3.2 對查詢
38、結(jié)果排序?qū)Σ樵兘Y(jié)果排序 【例4-30】查詢student表中的所有記錄,按照gender字段的升序和grade字段的降序進行排列,SQL語句及其執(zhí)行結(jié)果如下所示:讓IT教學(xué)更簡單,讓IT學(xué)習(xí)更有效4.3 高級查詢 4.3.3 分分組查詢組查詢 在MySQL中,可以使用GROUP BY按某個字段或者多個字段中的值進行分組,字段中值相同的為一組。 語法格式如下所示:指定的字段名1、字段名2等是對查詢結(jié)果分組的依據(jù)。HAVING關(guān)鍵字指定條件表達式對分組后的內(nèi)容進行過濾。需要特別注意的是,GROUP BY一般和聚合函數(shù)一起使用,如果查詢的字段出現(xiàn)在GROUP BY后,卻沒有沒有包含在聚合函數(shù)中,該字
39、段顯示的是分組后的第一條記錄的值,這樣有可能會導(dǎo)致查詢結(jié)果不符合我們的預(yù)期。讓IT教學(xué)更簡單,讓IT學(xué)習(xí)更有效4.3 高級查詢 4.3.3 分分組查詢組查詢 1、單獨使用GROUP BY分組 單獨使用group by關(guān)鍵字,查詢的是每個分組中的一條記錄。 【例4-31】查詢student表中的記錄,按照gender字段值進行分組,SQL語句及其執(zhí)行結(jié)果如下所示:讓IT教學(xué)更簡單,讓IT學(xué)習(xí)更有效4.3 高級查詢 4.3.3 分分組查詢組查詢 2、GROUP BY和聚合函數(shù)一起使用 GROUP BY和聚合函數(shù)一起使用,可以統(tǒng)計出某個或者某些字段在一個分組中的最大值、最小值、平均值等等。 【例4-
40、32】將student表按照gender字段值進行分組查詢,計算出每個分組中各有多少名學(xué)生,SQL語句及其執(zhí)行結(jié)果如下所示:讓IT教學(xué)更簡單,讓IT學(xué)習(xí)更有效4.3 高級查詢 4.3.3 分分組查詢組查詢 3、GROUP BY和HAVING關(guān)鍵字一起使用 HAVING關(guān)鍵字和WHERE關(guān)鍵字的作用相同,都用于設(shè)置條件表達式對查詢結(jié)果進行過濾。 HAVING關(guān)鍵字和WHERE關(guān)鍵字的區(qū)別在于,HAVING關(guān)鍵字后可以跟聚合函數(shù),而WHERE關(guān)鍵字不能。通常情況下HAVING關(guān)鍵字都和GROUP BY一起使用,用于對分組后的結(jié)果進行過濾。讓IT教學(xué)更簡單,讓IT學(xué)習(xí)更有效4.3 高級查詢 4.3.3 分分組查詢組查詢 【例4-33】將student表按照gender字段進行分組查詢,查詢出grade字段值之和小于300的分組,SQL語句及其執(zhí)行結(jié)果如下所示:讓IT教學(xué)更簡單,讓IT學(xué)習(xí)更有效4.3 高級查詢 4.3.4 使使用用LIMIT限制查詢結(jié)果的數(shù)量限制查詢結(jié)果的數(shù)量 MySQL中提供了一個關(guān)鍵字LIMIT,可以指定查詢結(jié)果從哪一條記錄開始以及一共查詢多少條信息。 語法格式如下所示:SELECT 字段名1,字段名2,FROM 表名LIMIT OFFSET, 記錄數(shù)讓IT教學(xué)更簡單,讓IT學(xué)習(xí)更有效4.3 高級查詢 4
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年中國皮相框市場調(diào)查研究報告
- 2024至2030年轉(zhuǎn)椅虎爪腳項目投資價值分析報告
- 2019-2025年中國學(xué)前教育行業(yè)市場前景預(yù)測及投資戰(zhàn)略研究報告
- 軟件工程實施合同
- 網(wǎng)絡(luò)安全設(shè)備采購合同
- 信息技術(shù)支持的數(shù)學(xué)評估方案
- 項目責任承包合同協(xié)議
- 供應(yīng)鏈管理優(yōu)化方案制定協(xié)議
- 產(chǎn)品銷售渠道開發(fā)合作協(xié)議
- 金融服務(wù)行業(yè)股東投資協(xié)議書
- 中醫(yī)辨證-八綱辨證(中醫(yī)學(xué)課件)
- DL∕T 2558-2022 循環(huán)流化床鍋爐基本名詞術(shù)語
- DL∕T 523-2017 化學(xué)清洗緩蝕劑應(yīng)用性能評價指標及試驗方法
- 抖音賬號歸屬合同范本
- CJT 313-2009 生活垃圾采樣和分析方法
- 廣安市岳池縣2022-2023學(xué)年七年級上學(xué)期期末道德與法治試題【帶答案】
- 煤矸石充填塌陷區(qū)復(fù)墾技術(shù)規(guī)程
- 黃腐植酸鈉投資項目可行性研究報告
- 冠脈介入進修匯報
- 2024-2029年中國會議平板行業(yè)發(fā)展趨勢分析及投資前景預(yù)測研究報告
- 中原文化(歷史篇)智慧樹知到期末考試答案2024年
評論
0/150
提交評論