版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
MySQL數(shù)據(jù)庫應(yīng)用與開發(fā)技術(shù)第3章數(shù)據(jù)檢索操作本單元教學(xué)目標了解數(shù)據(jù)SQL語句基礎(chǔ)語法認識數(shù)據(jù)查詢的條件過濾類型熟悉數(shù)據(jù)表的多條件檢索熟悉子查詢的類型及相關(guān)語法掌握數(shù)據(jù)表的分組、排序語法掌握數(shù)據(jù)表檢索中聚合函數(shù)的應(yīng)用掌握多表連接查詢操作SQL語句流轉(zhuǎn)
3查詢檢索SQL基本語法:SELECT字段1,字段2,…,字段n,FROM數(shù)據(jù)表數(shù)據(jù)檢索各類條件按字段檢索數(shù)據(jù)SELECTUSER_ID,USER_NAME,USER_AGEFROMUSER;給檢索字段及數(shù)據(jù)表添加別名SELECTUSER_IDASID,USER_NAMEASNAME,USER_AGEASAGEFROMUSERASU;全字段檢索數(shù)據(jù)表SELECT*FROMUSER;4案例應(yīng)用|基本檢索某地區(qū)有若干的百貨超市,每個百貨超市有固定的營業(yè)地址,每個百貨超市有固定的員工數(shù),每個百貨超市有固定的負責人,上半年(1月-6月)每個百貨超市均有相應(yīng)零售銷售額度。5百貨超市數(shù)據(jù)表|supermarket字段1:主鍵標識(shop_id)INTPrimaryKey字段2:百貨超市名稱(shop_name)VARCHAR(45)字段3:百貨超市地址(shop_address)VARCHAR(45)字段4:百貨超市的員工數(shù)(shop_employee)INT字段5:百貨超市的門店經(jīng)理(shop_manager)VARCHAR(45)字段6:月度銷售額(sale_money)INT字段7:銷售月份(sale_month)INT6案例應(yīng)用|SQL腳本DROPTABLEIFEXISTSsupermarket;CREATETABLEsupermarket(shop_idint(10)unsignedNOTNULLauto_increment,shop_namevarchar(45)NOTNULL,shop_addressvarchar(45)NOTNULL,shop_employeeint(10)unsignedNOTNULL,shop_managervarchar(45)NOTNULL,sale_moneyint(10)unsignedNOTNULL,sale_monthint(10)NOTNULL,PRIMARYKEY(shop_id))ENGINE=InnoDBAUTO_INCREMENT=5DEFAULTCHARSET=utf8;INSERTINTOsupermarket(shop_id,shop_name,shop_address,shop_employee,shop_manager,sale_money,sale_month)VALUES(1,'百佳','沿江路32號',300,'劉金華',600000,1),(2,'萬佳','建國路78號',250,'陳恩利',700000,1),(3,'人人樂','越王路20號',280,'黃志軍',540000,1),(4,'新一佳','興華路15號',230,'陳新麗',400000,1),(5,'百佳','沿江路32號',300,'劉金華',650000,2),(6,'萬佳','建國路78號',250,'陳恩利',720000,2),(7,'人人樂','越王路20號',280,'黃志軍',520000,2),(8,'新一佳','興華路15號',230,'陳新麗',430000,2),(9,'百佳','沿江路32號',300,'劉金華',630000,3),(10,'萬佳','建國路78號',250,'陳恩利',750000,3),(11,'人人樂','越王路20號',280,'黃志軍',500000,3),(12,'新一佳','興華路15號',230,'陳新麗',450000,3),(13,'百佳','沿江路32號',300,'劉金華',610000,4),(14,'萬佳','建國路78號',250,'陳恩利',680000,4),(15,'人人樂','越王路20號',280,'黃志軍',550000,4),(16,'新一佳','興華路15號',230,'陳新麗',460000,4),(17,'百佳','沿江路32號',300,'劉金華',580000,5),(18,'萬佳','建國路78號',250,'陳恩利',740000,5),(19,'人人樂','越王路20號',280,'黃志軍',490000,5),(20,'新一佳','興華路15號',230,'陳新麗',380000,5),(21,'百佳','沿江路32號',300,'劉金華',620000,6),(22,'萬佳','建國路78號',250,'陳恩利',760000,6),(23,'人人樂','越王路20號',280,'黃志軍',560000,6),(24,'新一佳','興華路15號',230,'陳新麗',470000,6);7案例應(yīng)用|業(yè)務(wù)檢索檢索出各百貨超市各個月份的銷售額度SQL語句1:SELECTshop_id,shop_name,sale_money,sale_monthFROMsupermarket;SQL語句2:SELECTshop_idASid,shop_nameASname,sale_moneyASmoney,sale_monthASmonthFROMsupermarkets;8數(shù)據(jù)檢索條件過濾|WHEREWHERE條件過濾語法:SELECT檢索字段FROM數(shù)據(jù)表WHERE數(shù)據(jù)條件1AND/OR數(shù)據(jù)條件2AND/OR數(shù)據(jù)條件3…數(shù)據(jù)條件nAND連接數(shù)據(jù)條件SELECT*FROMUSERWHEREUSER_ROLE='admin'ANDUSER_STATUS='success';OR連接數(shù)據(jù)條件SELECT*FROMUSERWHEREUSER_ROLE='manager'ORUSER_RANK='vip';AND與OR同時連接數(shù)據(jù)條件SELECT*FROMUSERWHERE(USER_ROLE='admin'ANDUSER_STATUS='success')OR(USER_RANK='vip');9數(shù)據(jù)篩選規(guī)則|等于等于匹配規(guī)則:比較數(shù)值相等或字符內(nèi)容相同的數(shù)據(jù)篩選規(guī)則適用于數(shù)字類型或字符類型的數(shù)據(jù)項使用符號“=”左邊為篩選的數(shù)據(jù)項右邊為所篩選的數(shù)字值或字符值規(guī)則格式:數(shù)據(jù)項=篩選數(shù)值或字符如:USER_AGE=20如:USER_ROLE='admin'10數(shù)據(jù)篩選規(guī)則|大于大于、大于或等于匹配規(guī)則一種比較數(shù)據(jù)篩選方式只適用于數(shù)值類型的數(shù)據(jù)項進行數(shù)據(jù)過濾大于匹配規(guī)則使用符號“>”表示相關(guān)值要大于指定的數(shù)值才符合數(shù)據(jù)篩選條件大于或等于匹配規(guī)則使用符號“>=”表示相關(guān)值如果大于或等于指定的數(shù)值就符合數(shù)據(jù)篩選條件符號左邊為篩選的數(shù)據(jù)項,右邊為所篩選的數(shù)字值規(guī)則格式:數(shù)據(jù)項>篩選數(shù)字值如:EMPLOYEE_SALARY>6000數(shù)據(jù)項>=篩選數(shù)字值如:ONLINE_HOURS>=1211數(shù)據(jù)篩選規(guī)則|小于小于、小于或等于匹配規(guī)則一種比較數(shù)據(jù)篩選方式只適用于數(shù)值類型的數(shù)據(jù)項進行數(shù)據(jù)過濾小于匹配規(guī)則使用符號“<”表示相關(guān)值要大于指定的數(shù)值才符合數(shù)據(jù)篩選條件小于或等于匹配規(guī)則使用符號“<=”表示相關(guān)值如果小于或等于指定的數(shù)值就符合數(shù)據(jù)篩選條件符號左邊為篩選的數(shù)據(jù)項,右邊為所篩選的數(shù)字值規(guī)則格式:數(shù)據(jù)項<篩選數(shù)字值如:COURSE_SCORE<90數(shù)據(jù)項<=篩選數(shù)字值如:STUDENT_PERSONS<=4012數(shù)據(jù)篩選規(guī)則|介于介于匹配規(guī)則一種在某個范圍內(nèi)進行篩選的數(shù)據(jù)過濾方式只適用于類型為數(shù)字的數(shù)據(jù)項表示數(shù)據(jù)要大于或等于某個邊界數(shù)值同時要小于或等于某個邊界數(shù)值的數(shù)據(jù)才符合篩選條件使用關(guān)鍵詞“BETWEEN”與“AND”關(guān)鍵詞“BETWEEN”后面跟數(shù)值較小的邊界值關(guān)鍵詞“AND”后面跟數(shù)值較大的邊界值規(guī)則格式:數(shù)據(jù)項BETWEEN數(shù)字值1AND數(shù)字值2如:TV_PRICEBETWEEN4500AND5000如:MEMBER_AMOUNTBETWEEN600AND80013數(shù)據(jù)篩選規(guī)則|指定指定匹配規(guī)則:一種讓數(shù)據(jù)項與給定的數(shù)據(jù)元素列表相吻合的數(shù)據(jù)篩選方式適用于數(shù)字類型或字符類型的數(shù)據(jù)項命中了給定的數(shù)據(jù)列表中的元素即符合數(shù)據(jù)篩選條件指定匹配規(guī)則要使用關(guān)鍵詞“IN”關(guān)鍵詞左邊為篩選的數(shù)據(jù)項右邊為所給定的數(shù)據(jù)元素列表數(shù)據(jù)元素在小括號內(nèi),各元素用英文狀態(tài)下的逗號隔開規(guī)則格式:數(shù)據(jù)項IN(元素1,元素2,…,元素n)如:USER_IDIN(10,16,20,25,29,32,40)如:USER_NAMEIN('Kerry','Rose','Honey','Wendy','Tomy')14數(shù)據(jù)篩選規(guī)則|類似類似是一種模糊的字符配置規(guī)則需要使用關(guān)鍵詞“LIKE”按照某種模糊的方式來配匹數(shù)據(jù)使用百分號“%”來通配字符三種類型:前模糊匹配后模糊匹配全模糊匹配15前模糊匹配前模糊匹配是指:前半部分使用模糊匹配符號“%”與指定字符相組合通配符“%”表示任意字符前半部分字符任意,能與后半部分字符匹配即可整個匹配表達式需用英文狀態(tài)下的單引號引起來規(guī)則格式:LIKE'%指定過濾字符'如:LIKE'%BMW'只要以“BMW”結(jié)尾的數(shù)據(jù)項就符合篩選條件如:LIKE'%Bus'只要以“Bus”結(jié)尾的數(shù)據(jù)項就符合篩選條件16后模糊匹配后模糊匹配是指:后半部分使用模糊匹配符號“%”與指定字符相組合通配符“%”表示任意字符后半部分字符任意,能與前半部分字符匹配即可整個匹配表達式需用英文狀態(tài)下的單引號引起來規(guī)則格式:LIKE'指定過濾字符%'如:LIKE'Book%'只要以“Book”開頭的數(shù)據(jù)項就符合篩選條件如:LIKE'Order%'只要以“Order”開頭的數(shù)據(jù)項就符合篩選條件17全模糊匹配全模糊匹配:將匹配字符內(nèi)容分成:前半部分、中間部分、后半部分前半部分內(nèi)容與后半部分內(nèi)容使用模糊匹配符號“%”中間部分指定具體字符整個匹配表達式的含義:所篩選數(shù)據(jù)項只要包含中間部分字符,即符合數(shù)據(jù)篩選條件整個匹配表達式需用英文狀態(tài)下的單引號引起來規(guī)則格式:LIKE'%指定過濾字符%'如:LIKE'%VIP%'只要包含“VIP”字符的數(shù)據(jù)項就符合篩選條件如:LIKE'%OK%'只要包含“OK”字符的數(shù)據(jù)項就符合篩選條件18數(shù)據(jù)檢索條件過濾|HAVINGHAVING條件過濾語法:SELECT數(shù)據(jù)項1,數(shù)據(jù)項2,…
數(shù)據(jù)項nFROM數(shù)據(jù)表HAVING數(shù)據(jù)條件1AND/OR數(shù)據(jù)條件2AND/OR數(shù)據(jù)條件3…
數(shù)據(jù)條件n關(guān)鍵詞“HAVING”作條件數(shù)據(jù)篩選時,其不針對表中的字段,而是針對關(guān)鍵詞“SELECT”后面所列出的數(shù)據(jù)項如果數(shù)據(jù)項沒有出現(xiàn)在“SELECT”關(guān)鍵詞的后面,則不能作為篩選的條件數(shù)據(jù)項19HAVIGN與WHERE的區(qū)別針對目標對象不同:“WHERE”子句針對表中的列發(fā)揮作用,檢索數(shù)據(jù)時,只能對數(shù)據(jù)表中的列設(shè)置篩選條件“HAVING”子句則對查詢結(jié)果中的數(shù)據(jù)項發(fā)揮作用,檢索數(shù)據(jù)時,只能對查詢結(jié)果的返回數(shù)據(jù)項設(shè)置篩選條件SELECTgoods_name,(market_price-shop_price)asdif_price
FROMgoodsHAVING
dif_price=20對聚合函數(shù)適用性不同:“WHERE”子句中不能使用聚合函數(shù)“HAVING”子句中可以使用聚合函數(shù)若“HAVING”子句與“GROUPBY”子句同時期出現(xiàn),則“HAVING”子句需位于“GROUPBY”子句的后面SELECTuser_name,user_rank,user_addressFROMorderGROUPBYuser_name
HAVINGSUM(order_money)=1500案例應(yīng)用|數(shù)據(jù)條件過濾以本章百貨超市(supermarket)數(shù)據(jù)表為例,實現(xiàn)以下相關(guān)業(yè)務(wù)查詢檢索需求。檢索出各百貨超市1月份的銷售額度。檢索出“萬佳”百貨超市3月份以及“人人樂”百貨超市5月份的銷售額度。檢索出百貨超市名稱(shop_name)中包含“佳”字符的相關(guān)數(shù)據(jù)信息。檢索出月銷售度介于600000-700000之間的百貨超市的名稱、月度、相關(guān)月銷售額信息。21案例應(yīng)用|業(yè)務(wù)檢索(1)檢索出各百貨超市1月份的銷售額度SQL語句1:SELECTshop_id,shop_name,shop_address,shop_employee,shop_manager,sale_money,sale_monthFROMsupermarketWHEREsale_month=1;SQL語句2:SELECT*FROMsupermarketWHEREsale_month=1;22案例應(yīng)用|業(yè)務(wù)檢索(2)檢索出“萬佳”百貨超市3月份以及“人人樂”百貨超市5月份的銷售額度SELECT*FROMsupermarketWHERE(shop_name='萬佳'ANDsale_month=3)OR(shop_name='人人樂'ANDsale_month=5);23案例應(yīng)用|業(yè)務(wù)檢索(3)檢索出百貨超市名稱(shop_name)中包含“佳”字符的相關(guān)數(shù)據(jù)信息SELECT*FROMsupermarketWHEREshop_nameLIKE'%佳%';24案例應(yīng)用|業(yè)務(wù)檢索(4)檢索出月銷售度介于600000-700000之間的百貨超市的名稱、月度、相關(guān)月銷售額信息SELECTshop_name,sale_money,sale_monthFROMsupermarketWHEREsale_moneyBETWEEN600000AND700000;25案例應(yīng)用|業(yè)務(wù)檢索(5)檢索各百貨超市中出1-6月份,每月的最低銷售額在400000元以上的百貨超市的名稱、門店地址、員工數(shù)、門店主管相關(guān)信息。SELECTshop_name,shop_address,shop_persons,shop_managerFROMsupermarketGROUPBYshop_nameHAVINGMIN(sale_month_money)>400000;26數(shù)據(jù)檢索分組對同一系列數(shù)據(jù)做分類處理要使用關(guān)鍵詞“GROUPBY”可以對多個數(shù)據(jù)項進行分組操作分組從句與條件過濾從句同時出現(xiàn)“WHERE”關(guān)鍵詞在前“GROUPBY”關(guān)鍵詞在后27數(shù)據(jù)分組語法語法格式:SELECT檢索字段FROM數(shù)據(jù)表WHERE數(shù)據(jù)條件GROUPBY分組數(shù)據(jù)項1,分組數(shù)據(jù)項2,…,分組數(shù)據(jù)項n單維度分組SELECTUSER_BUY、SUM(ORDER_MONEY)、USER_RANKFROMORDERGROUPBYUSER_BUY;多維度分組SELECTCOLLEGE、MAJOR、CLASS、AVG(SCORE)FROMUNIVERSITY_SCHOOLGROUPBYCOLLEGE,MAJOR,CLASS;28案例應(yīng)用|數(shù)據(jù)分組以本章百貨超市(supermarket)數(shù)據(jù)表為例,實現(xiàn)以下相關(guān)業(yè)務(wù)查詢檢索需求。檢索出各百貨超市的名稱、所在地、負責人、職工人數(shù)檢索出各百貨超市1-3月份的銷售額度檢索出各百貨超市1月-6月的銷售總額29案例應(yīng)用|業(yè)務(wù)檢索(1)檢索出各百貨超市的名稱、所在地、負責人、職工人數(shù)SELECTshop_name,shop_address,shop_manager,shop_employeeFROMsupermarketGROUPBYshop_name;30案例應(yīng)用|業(yè)務(wù)檢索(2)檢索出各百貨超市1-3月份的銷售額度SELECTshop_name,sale_month,sale_moneyFROMsupermarketWHEREsale_month<=3GROUPBYshop_name,sale_month;31案例應(yīng)用|業(yè)務(wù)檢索(3)檢索出各百貨超市1月-6月的銷售總額SELECTshop_name,SUM(sale_money)AStotal_moneyFROMsupermarketGROUPBYshop_name;32數(shù)據(jù)檢索排序數(shù)據(jù)檢索操作要使用關(guān)鍵詞“ORDERBY”關(guān)鍵詞后面直接跟檢索排序的數(shù)據(jù)項可以指定多個排序的數(shù)據(jù)項最前面為第一排序數(shù)據(jù)項依次為第二排序數(shù)據(jù)項、第三排序數(shù)據(jù)項指定的第一排序數(shù)據(jù)項為排序的依據(jù)第一數(shù)據(jù)項無法確定先后順序,則依據(jù)第二數(shù)據(jù)項第二數(shù)據(jù)項無法確定先后順序,則依據(jù)第三數(shù)據(jù)項33數(shù)據(jù)排序語法排序語法:SELECT檢索字段FROM數(shù)據(jù)表WHERE數(shù)據(jù)條件ORDERBY排序數(shù)據(jù)項1,排序數(shù)據(jù)項2,…,排序數(shù)據(jù)項nASC/DESC單數(shù)據(jù)項排序SELECT*FROMSTUDENT_CLASSORDERBYEXAM_SCOREDESC;多數(shù)據(jù)項排序SELECT*FROMSTUDENTORDERBYCOLLEGE,MAJOR,CLASS,NAMEASC;34案例應(yīng)用|數(shù)據(jù)排序以本章百貨超市(supermarket)數(shù)據(jù)表為例,實現(xiàn)以下相關(guān)業(yè)務(wù)查詢檢索需求。檢索出各百貨超市5月份的銷售數(shù)據(jù),并按銷售金額降序排序。檢索出全表所有數(shù)據(jù)信息,并按百貨超市名稱、營業(yè)地址、月銷售額、銷售月份四個數(shù)據(jù)項進行排序。35案例應(yīng)用|業(yè)務(wù)檢索(1)檢索出各百貨超市5月份的銷售數(shù)據(jù),并按銷售金額降序排序SELECT*FROMsupermarketWHEREsale_month=5ORDERBYsale_moneyDESC;36案例應(yīng)用|業(yè)務(wù)檢索(2)檢索出全表所有數(shù)據(jù)信息,并按百貨超市名稱、營業(yè)地址、月銷售額、銷售月份四個數(shù)據(jù)項進行排序SELECT*FROMsupermarketORDERBYshop_name,shop_address,sale_money,sale_month;37數(shù)據(jù)分頁默認檢索:查詢檢索默認情況返回所有符合條件的數(shù)據(jù)記錄分頁檢索:當符合條件的數(shù)據(jù)集非常大的情況下,一次返回所有數(shù)據(jù)記錄,不但會加重數(shù)據(jù)庫服務(wù)器的負載,同時也會影響客戶端工具的數(shù)據(jù)展現(xiàn)信息系統(tǒng)中一次返回全部數(shù)據(jù)會影響WEB前端頁面的數(shù)據(jù)展現(xiàn)風(fēng)格分頁檢索使用“LIMIT”關(guān)鍵詞數(shù)據(jù)分頁語法SQL分頁語法1:SELECT檢索字段FROM數(shù)據(jù)表LIMITn數(shù)據(jù)分頁的關(guān)鍵詞“LIMIT”必須放在所有其他關(guān)鍵詞最后面關(guān)鍵詞“LIMIT”后面只有一個分頁參數(shù)n表示返回查詢檢索數(shù)據(jù)集中排列在最前面的n條數(shù)據(jù)記錄SQL分頁語法2:SELECT檢索字段FROM數(shù)據(jù)表LIMITn1,n2關(guān)鍵詞“LIMIT”后面有兩個分頁參數(shù)時第一個參數(shù)n1,表示從n1條記錄后面開始檢索數(shù)據(jù)第二個參數(shù)n2,表示一共檢索n2條數(shù)據(jù)前后兩個參數(shù)之間且英文狀態(tài)下的逗號分隔開來案例應(yīng)用|數(shù)據(jù)分頁以本章百貨超市(supermarket)數(shù)據(jù)表為例,實現(xiàn)以下相關(guān)業(yè)務(wù)查詢檢索需求。檢索出各百貨超市全部銷售數(shù)據(jù),并做分頁處理,返回最前面8條數(shù)據(jù)記錄檢索出各百貨超市的1-5月份的全部銷售數(shù)據(jù),按月銷售額降序排列,并做分頁處理,返回第11-15條數(shù)據(jù)記錄40案例應(yīng)用|業(yè)務(wù)檢索(1)檢索出各百貨超市全部銷售數(shù)據(jù),并做分頁處理,返回最前面8條數(shù)據(jù)記錄SELECT*FROMsupermarketWHEREsale_month<=5ORDERBYsale_month_moneyDESCLIMIT10,5;41案例應(yīng)用|業(yè)務(wù)檢索(2)檢索出各百貨超市的1-5月份的全部銷售數(shù)據(jù),按月銷售額降序排列,并做分頁處理,返回第11-15條數(shù)據(jù)記錄SELECT*FROMsupermarketWHEREsale_month<=5ORDERBYsale_month_moneyDESCLIMIT10,5;42聚合函數(shù)(1)SUM函數(shù):求和函數(shù)對檢索數(shù)據(jù)集進行求和運算傳入需要求和的數(shù)據(jù)項只對類型為數(shù)值的數(shù)據(jù)項有效函數(shù)應(yīng)用格式:SUM(數(shù)據(jù)項)如:SUM(SALARY)對工資(SALARY)數(shù)據(jù)項求和如:SUM(MILE)對里程(MILE)數(shù)據(jù)項求和函數(shù)應(yīng)用語句:SELECTUSER_NAME,SUM(ORDER_MONEY)FROMUSER_ORDERGROUPBYUSER_NAME;43聚合函數(shù)(2)AVG函數(shù):求平均值函數(shù)對檢索數(shù)據(jù)集進行求平均值運算傳入需要求平均值的數(shù)據(jù)項只對類型為數(shù)值的數(shù)據(jù)項有效函數(shù)應(yīng)用格式:AVG(數(shù)據(jù)項)如:AVG(SALARY)對工資(SALARY)數(shù)據(jù)項求平均值如:AVG(SCORE)對成績(SCORE)數(shù)據(jù)項求平均值函數(shù)應(yīng)用語句:SELECTDEPARTMENT,AVG(SALARY)FROMEMPLOYEEGROUPBYDEPARTMENT;44聚合函數(shù)(3)MAX函數(shù):求最大值函數(shù)對檢索數(shù)據(jù)集進行求最大值運算傳入需要求最大值的數(shù)據(jù)項只對類型為數(shù)值的數(shù)據(jù)項有效函數(shù)應(yīng)用格式:MAX(數(shù)據(jù)項)如:MAX(SALARY)對工資(SALARY)數(shù)據(jù)項求最大值如:MAX(SCORE)對成績(SCORE)數(shù)據(jù)項求最大值函數(shù)應(yīng)用語句:SELECTDEPARTMENT,MAX(SALARY)FROMEMPLOYEEGROUPBYDEPARTMENT;45聚合函數(shù)(4)MIN函數(shù):求最小值函數(shù)對檢索數(shù)據(jù)集進行求最小值運算傳入需要求最小值的數(shù)據(jù)項只對類型為數(shù)值的數(shù)據(jù)項有效函數(shù)應(yīng)用格式:MIN(數(shù)據(jù)項)如:MIN(SALARY)對工資(SALARY)數(shù)據(jù)項求最小值如:MIN(SCORE)對成績(SCORE)數(shù)據(jù)項求最小值函數(shù)應(yīng)用語句:SELECTDEPARTMENT,MIN(SALARY)FROMEMPLOYEEGROUPBYDEPARTMENT;46聚合函數(shù)(5)COUNT函數(shù):對符合某種條件的數(shù)據(jù)集的數(shù)量作統(tǒng)計運算傳入數(shù)據(jù)表中的某個數(shù)據(jù)項或符號“*”傳入數(shù)據(jù)項時表示統(tǒng)計此項不為空記錄的數(shù)量傳入符號“*”時表示所統(tǒng)計出來記錄數(shù)量包含空記錄數(shù)據(jù)函數(shù)應(yīng)用格式:COUNT(數(shù)據(jù)項)如:COUNT(SALARY)統(tǒng)計(SALARY)數(shù)據(jù)項不為空(NULL)的記錄數(shù)如:COUNT(*)統(tǒng)計的記錄數(shù)量包含空(NULL)記錄函數(shù)應(yīng)用語句:SELECTCOUNT(*)FROMUSER_EMALLWHEREMAIL_ID='CS2023@163.com';47聚合函數(shù)(6)NOW函數(shù):獲取當前時間函數(shù)使用NOW函數(shù)不需要傳入任何參數(shù)時間格式包含年、月、日、時、分、秒信息函數(shù)應(yīng)用格式:NOW()函數(shù)應(yīng)用語句:SELECTNOW();48案例應(yīng)用|聚合函數(shù)以本章百貨超市(supermarket)數(shù)據(jù)表為例,實現(xiàn)以下相關(guān)業(yè)務(wù)查詢檢索需求。統(tǒng)計出各百貨超市第二季度的銷售總額。統(tǒng)計出各百貨超市上半年的最高月銷售額。統(tǒng)計出各百貨超市上半年的最低月銷售額。統(tǒng)計出各百貨超市上半年的月平均銷售額。統(tǒng)計出業(yè)務(wù)數(shù)據(jù)表中各百貨超市的業(yè)務(wù)記錄數(shù)量。49案例應(yīng)用|業(yè)務(wù)檢索(1)統(tǒng)計出各百貨超市第二季度的銷售總額SELECTshop_name,SUM(sale_money)AStotal_moneyFROMsupermarketWHEREsale_monthBETWEEN4AND6GROUPBYshop_name;50案例應(yīng)用|業(yè)務(wù)檢索(2)統(tǒng)計出各百貨超市上半年的最高月銷售額SELECTshop_name,MAX(sale_money)ASmax_moneyFROMsupermarketGROUPBYshop_name;51案例應(yīng)用|業(yè)務(wù)檢索(3)統(tǒng)計出各百貨超市上半年的最低月銷售額SELECTshop_name,MIN(sale_money)ASmin_moneyFROMsupermarketGROUPBYshop_name;52案例應(yīng)用|業(yè)務(wù)檢索(4)統(tǒng)計出各百貨超市上半年的月平均銷售額SELECTshop_name,AVG(sale_money)ASavg_moneyFROMsupermarketGROUPBYshop_name;53案例應(yīng)用|業(yè)務(wù)檢索(5)統(tǒng)計出業(yè)務(wù)數(shù)據(jù)表中各百貨超市的業(yè)務(wù)記錄數(shù)量SELECTshop_name,COUNT(*)FROMsupermarketGROUPBYshop_name;54多表連接針對業(yè)務(wù)數(shù)據(jù)分布在不同的數(shù)據(jù)表上數(shù)據(jù)查詢檢索時使用表連接的方式進行數(shù)據(jù)組合最關(guān)鍵的一環(huán)是多表連接條件的設(shè)置典型的應(yīng)用場景是主外鍵的關(guān)聯(lián)操作55雙表連接雙表連接語法:SELECT字段1,字段2,…,字段n,FROM數(shù)據(jù)表1,數(shù)據(jù)表2WHERE表1連接字=表2連接字段SQL語句1:SELECT*FROMBANK_ACCOUNT,BANK_USERWHEREBANK_ACCOUNT.USER_ID=BANK_USER.USER_ID;SQL語句2:SELECT*FROMBANK_ACCOUNTBA,BANK_USERBUWHEREBA.USER_ID=BU.USER_ID;56三表以上連接多表連接語法:SELECT字段1,字段2,…,字段n,FROM數(shù)據(jù)表1,…,數(shù)據(jù)表nWHERE表p連接字=表q連接字段AND…AND表y連接字段=表z連接字段SQL語句:SELECT*FROMTAB1T1,TAB2T2,TAB3T3,TAB4T4WHERET1.UID=T2.UIDANDT2.UID=T3.UIDANDT3.UID=T4.UID;57案例應(yīng)用|多表連接數(shù)據(jù)庫環(huán)境中有三張數(shù)據(jù)表:學(xué)生表(student)院系表(college)獲獎表(prize)存儲了學(xué)生參加各項競賽的相關(guān)信息獲獎表與學(xué)生表之間通過學(xué)號(sn)字段進行主外鍵關(guān)聯(lián)院系表與學(xué)生表之間通過專業(yè)標識(major_id)字段進行業(yè)務(wù)關(guān)聯(lián)58數(shù)據(jù)表結(jié)構(gòu)及基礎(chǔ)數(shù)據(jù)學(xué)生表:student字段1:學(xué)號(sn)VARCHAR(45)PrimaryKey字段2:姓名(name)VARCHAR(45)字段3:專業(yè)標識(major_id)VARCHAR(45)院系表:college字段1:院系標識(id)VARCHAR(45)PrimaryKey字段2:院系名稱(college_name)VARCHAR(45)字段3:專業(yè)標識(major_id)VARCHAR(45)字段4:專業(yè)名稱(major_name)VARCHAR(45)獲獎表:prize字段1:主鍵標識(id)INTPrimaryKey字段2:學(xué)號(sn)VARCHAR(45)字段3:獲獎項目(prize_name)VARCHAR(45)字段4:獲獎等級(rank)VARCHAR(45)59SQL數(shù)據(jù)庫腳本DROPTABLEIFEXISTScollege;CREATETABLEcollege(idvarchar(45)NOTNULL,college_namevarchar(45)NOTNULL,major_idvarchar(45)NOTNULL,major_namevarchar(45)NOTNULL,PRIMARYKEY(id))ENGINE=InnoDBDEFAULTCHARSET=utf8;INSERTINTOcollege(id,college_name,major_id,major_name)VALUES('1001','計算機學(xué)院','s_0001','應(yīng)用電子'),('1002','教育學(xué)院','t_0002','語文教育'),('1003','工商管理學(xué)院','x_0005','應(yīng)用會計'),('1004','計算機學(xué)院','v_0003','網(wǎng)絡(luò)技術(shù)'),('1005','教育學(xué)院','u_0004','英語教育');DROPTABLEIFEXISTSprize;CREATETABLEprize(idint(10)unsignedNOTNULLauto_increment,snvarchar(45)NOTNULL,prize_namevarchar(45)NOTNULL,rankvarchar(45)NOTNULL,PRIMARYKEY(id))ENGINE=InnoDBAUTO_INCREMENT=11DEFAULTCHARSET=utf8;INSERTINTOprize(id,sn,prize_name,rank)VALUES(1,'201600000001','數(shù)學(xué)建模大賽','二等獎'),(2,'201600000003','軟件設(shè)計大賽','一等獎'),(3,'201600000004','挑戰(zhàn)杯網(wǎng)絡(luò)攻防大賽','三等獎'),(4,'201600000006','百花爭鳴文學(xué)大賽','二等獎'),(5,'201600000009','高校杯國防安全知識大賽','三等獎'),(6,'201600000010','新時空創(chuàng)業(yè)大賽','一等獎'),(7,'201600000011','唐宋詩詞大賽','三等獎'),(8,'201600000012','大學(xué)生創(chuàng)意大賽','二等獎'),(9,'201600000014','全民健身運動大賽','三等獎'),(10,'201600000015','全國英語專業(yè)技能大賽','三等獎');DROPTABLEIFEXISTSstudent;CREATETABLEstudent(snvarchar(45)NOTNULL,namevarchar(45)NOTNULL,major_idvarchar(45)NOTNULL,PRIMARYKEY(sn))ENGINE=InnoDBDEFAULTCHARSET=utf8;INSERTINTOstudent(sn,name,major_id)VALUES('201600000001','張小拴','s_0001'),('201600000002','孫明活','t_0002'),('201600000003','陳京楚','v_0003'),('201600000004','王意昌','s_0001'),('201600000005','劉太展','u_0004'),('201600000006','何原凡','t_0002'),('201600000007','王彬華','s_0001'),('201600000008','伍鯨念','s_0001'),('201600000009','陸順引','x_0005'),('201600000010','吳香桐','t_0002'),('201600000011','鐘鐘英','t_0002'),('201600000012','溫季鳳','v_0003'),('201600000013','胡金稱','s_0001'),('201600000014','黃蕾莘','v_0003'),('201600000015','苗千英','u_0004');60案例應(yīng)用|業(yè)務(wù)檢索(1)檢索出各項獲獎的學(xué)生信息SELECTs.sn,,p.prize_name,p.rankFROMstudents,prizepWHEREs.sn=p.sn;61案例應(yīng)用|業(yè)務(wù)檢索(2)檢索出所有學(xué)生的專業(yè)、院系信息SELECTs.sn,,c.major_name,c.college_nameFROMstudents,collegecWHEREs.major_id=c.major_id;62案例應(yīng)用|業(yè)務(wù)檢索(3)檢索出各學(xué)院的獲獎學(xué)生信息SELECTs.sn,,c.major_name,c.college_name,p.prize_name,p.rankFROMstudents,college
c,prizepWHEREs.major_id=c.major_idANDs.sn=p.snORDERBYc.college_name,c.major_name;63子查詢一種進行查詢語句嵌套SQL語句類型為實現(xiàn)更加靈活、強大的數(shù)據(jù)檢索功能子查詢包含內(nèi)層查詢與外層查詢適用于復(fù)雜的數(shù)據(jù)檢索場景下使用子查詢從類型上來說可分為兩種,WHERE類型子查詢FROM類型子查詢64WHERE類型子查詢把內(nèi)層查詢結(jié)果作為外層查詢的數(shù)據(jù)篩選條件以條件值的形式參與外層查詢語句格式:SELECT檢索字段FROM數(shù)據(jù)表WHERE數(shù)據(jù)項條件比較操作(SELECT單字段FROM數(shù)據(jù)表WHERE數(shù)據(jù)檢索條件)SQL語句:SELECT*FROMSTUDENT_COURSEWHEREMATH_SCORE>(SELECTAVG(CHINESE_SCORE)FROMSTUDENT_COURSEWHERECOURSE='MATH');65FROM類型子查詢把內(nèi)層子查詢的結(jié)果作為一個虛表外層查詢再從這個虛表中檢索相關(guān)數(shù)據(jù)虛表與外層查詢主表或其它數(shù)據(jù)表作連接語句格式:SELECT檢索字段FROM(SELECT檢索字段FROM數(shù)據(jù)表)AS子查詢別名SQL語句:66SELECT*FROM(SELECT*FROMSTUDENT_COURSEWHEREGRADE='六年級')ASSONWHERESON.MATH_SCORE>=60;案例應(yīng)用|子查詢在一個汽車俱樂部會不定期吸收各種車輛入會,現(xiàn)要有一張數(shù)據(jù)表專門記錄入會車輛和相關(guān)信息,以方便日后對會員車輛的管理。67數(shù)據(jù)表結(jié)構(gòu)及基礎(chǔ)數(shù)據(jù)汽車俱樂部表:car_club字段1:車輛編號(car_no)VARCHAR(45)PrimaryKey字段2:車輛品牌(car_brand)VARCHAR(45)字段3:入會日期(enter_date)DATE字段4:車輛價格(car_price)INT字段5:出廠日期(product_date)DATE字段6:行駛里程(drive_mile)INT68SQL數(shù)據(jù)庫腳本DROPTABLEIFEXISTScar_club;CREATETABLEcar_club(c
溫馨提示
- 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 沈丘縣輔警招聘公安基礎(chǔ)知識考試題庫及答案
- 動火監(jiān)火人安全能力測試題及答案
- 2025年甘肅省安全員B證考試題庫附答案
- 高血壓孕婦的全程護理管理
- 靜脈輸血藥物相互作用與配伍禁忌
- 初中體育教師試題及答案
- 2026魯南技師學(xué)院第一批招聘教師8人備考題庫附答案
- 上饒高鐵經(jīng)濟試驗區(qū)社區(qū)工作者招聘【16人】參考題庫必考題
- 中國水科院巖土所科研助理招聘參考題庫必考題
- 樂清市人力資源和社會保障局關(guān)于公開選調(diào)2名下屬事業(yè)單位工作人員的參考題庫必考題
- 焊工焊接協(xié)議書(2篇)
- 蘇教版六年級數(shù)學(xué)上冊全套試卷
- 培訓(xùn)機構(gòu)轉(zhuǎn)課協(xié)議
- 河道治理、拓寬工程 投標方案(技術(shù)方案)
- 創(chuàng)客教室建設(shè)方案
- 政治審查表(模板)
- 《最奇妙的蛋》完整版
- SEMI S1-1107原版完整文檔
- 內(nèi)蒙古衛(wèi)生健康委員會綜合保障中心公開招聘8人模擬預(yù)測(共1000題)筆試備考題庫及答案解析
- 2023年中級財務(wù)會計各章作業(yè)練習(xí)題
- 金屬罐三片罐成型方法與罐型
評論
0/150
提交評論