數(shù)據(jù)查詢 基本查詢嵌套查詢連接查詢嵌套查詢和連接查詢PPT課件
《數(shù)據(jù)查詢 基本查詢嵌套查詢連接查詢嵌套查詢和連接查詢PPT課件》由會(huì)員分享,可在線閱讀,更多相關(guān)《數(shù)據(jù)查詢 基本查詢嵌套查詢連接查詢嵌套查詢和連接查詢PPT課件(37頁珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
1、數(shù)據(jù)庫技術(shù)與應(yīng)用基礎(chǔ)教材編寫組1學(xué)習(xí)目標(biāo) 了解: SQL語言特點(diǎn);SQL查詢語句SELECT基本組成。 理解: SQL查詢語句的用法;SELECT語句語法格式及各項(xiàng)子句的含義;聯(lián)接查詢和嵌套查詢的基本概念。 掌握: 查詢語句SELECT的綜合運(yùn)用,能進(jìn)行簡(jiǎn)單查詢、多表聯(lián)接以及子查詢的應(yīng)用。第1頁/共37頁數(shù)據(jù)庫技術(shù)與應(yīng)用基礎(chǔ)教材編寫組24.1 基本查詢 簡(jiǎn)單查詢 帶條件查詢 查詢結(jié)果處理第2頁/共37頁數(shù)據(jù)庫技術(shù)與應(yīng)用基礎(chǔ)教材編寫組34.1 基本查詢 數(shù)據(jù)查詢語句SELECT的基本框架是:SELECT-FROM-WHERE SELECT語句的語法格式: SELECT select_list I
2、NTO new_table FROM table_source WHERE search_condition GROUP BY group_by_expression HAVING search_condition ORDER BY order_expression ASC | DESC 數(shù)據(jù)庫技術(shù)與應(yīng)用基礎(chǔ)教材編寫組數(shù)據(jù)庫技術(shù)與應(yīng)用基礎(chǔ)教材編寫組需要哪些列從哪些表根據(jù)什么條件第3頁/共37頁數(shù)據(jù)庫技術(shù)與應(yīng)用基礎(chǔ)教材編寫組4簡(jiǎn)單查詢 簡(jiǎn)單查詢是指無條件查詢,其語法格式為:SELECT ALL | DISTINCT TOP n PERCENT FROM table_name 其中: ALL表示輸
3、出所有記錄,包括重復(fù)記錄。 DISTINCT表示輸出無重復(fù)結(jié)果的記錄。 TOP n指定返回查詢結(jié)果的前n行數(shù)據(jù)。 select_list中的選項(xiàng)可以是:、字段名、表達(dá)式或函數(shù)。第4頁/共37頁數(shù)據(jù)庫技術(shù)與應(yīng)用基礎(chǔ)教材編寫組5簡(jiǎn)單查詢舉例第5頁/共37頁數(shù)據(jù)庫技術(shù)與應(yīng)用基礎(chǔ)教材編寫組6簡(jiǎn)單查詢 常用聚合函數(shù)第6頁/共37頁數(shù)據(jù)庫技術(shù)與應(yīng)用基礎(chǔ)教材編寫組7簡(jiǎn)單查詢舉例 例如,分別查詢St_Info表的學(xué)生總數(shù)和學(xué)生的平均年齡 查詢學(xué)生總數(shù)(使用COUNT(*) )SELECT COUNT(*) AS 總數(shù) FROM St_Info 查詢學(xué)生的平均年齡(使用AVG)SELECT AVG(YEAR(G
4、ETDATE()- YEAR(Born_date) AS 平均年齡 FROM St_info第7頁/共37頁數(shù)據(jù)庫技術(shù)與應(yīng)用基礎(chǔ)教材編寫組8帶條件查詢 語法格式為:WHERE search_condition如列出St_Info表中年齡在20歲以上學(xué)生記錄。SELECT * FROM St_Info WHERE YEAR(GETDATE()- YEAR(Born_date)20這是一個(gè)關(guān)系表達(dá)式第8頁/共37頁數(shù)據(jù)庫技術(shù)與應(yīng)用基礎(chǔ)教材編寫組9帶條件查詢 WHERE子句中的條件運(yùn)算符第9頁/共37頁數(shù)據(jù)庫技術(shù)與應(yīng)用基礎(chǔ)教材編寫組10帶條件查詢舉例【例4.6】對(duì)s_c_info表,列出選修“大學(xué)計(jì)
5、算機(jī)基礎(chǔ)”和“體育”兩門課的學(xué)生信息。SELECT * FROM s_c_info e INNER JOIN c_info d ON e.c_no = d.c_noWHERE d.c_name IN (大學(xué)計(jì)算機(jī)基礎(chǔ), 體育)【例4.7】對(duì)st_info表,列出年齡在18到19之間的學(xué)生名單。 SELECT * FROM st_info WHERE YEAR(GETDATE()-YEAR(born_date) BETWEEN 18 AND 19第10頁/共37頁數(shù)據(jù)庫技術(shù)與應(yīng)用基礎(chǔ)教材編寫組11帶條件查詢舉例【例4.8】對(duì)st_info表,列出所有的姓“王”的學(xué)生名單。SELECT * FRO
6、M st_info WHERE st_name LIKE 王%【例4.9】對(duì)st_info表,列出所有Telephone為空值的學(xué)生的信息。SELECT st_info_id,st_info_name FROM st_info WHERE Telephone IS NULL第11頁/共37頁數(shù)據(jù)庫技術(shù)與應(yīng)用基礎(chǔ)教材編寫組12查詢結(jié)果處理 排序輸出(ORDER BY) 語法格式為:ORDER BY order_by_expression1ASC|DESC,order_by_expression2ASC|DESC ,【例4.10】對(duì)st_info表,按性別順序列出學(xué)生的信息,性別相同的再按年齡由小
7、到大排序。SELECT * FROM st_info ORDER BY st_sex,born_dateDESC第12頁/共37頁數(shù)據(jù)庫技術(shù)與應(yīng)用基礎(chǔ)教材編寫組13查詢結(jié)果處理 重定向輸出(INTO) 語法格式為:INTO new_table【例4.11】對(duì)s_c_info和c_info表,查詢出選修“大學(xué)計(jì)算機(jī)基礎(chǔ)”所有學(xué)生的信息,并將結(jié)果存入newstudent表中。 操作的語句為:SELECT s_c_info.st_id,c_info.c_name,s_c_info.score INTO newstudentFROM s_c_info INNER JOIN c_info ON s_c_
8、info.c_no = c_info.c_noWHERE c_info.c_name = 大學(xué)計(jì)算機(jī)基礎(chǔ)第13頁/共37頁數(shù)據(jù)庫技術(shù)與應(yīng)用基礎(chǔ)教材編寫組14查詢結(jié)果處理 輸出合并(UNION) 語法格式為: UNION ALL 【例4.12】對(duì)c_info表,列出課程編號(hào)為“9710011”或“9720033”的課程名稱和學(xué)分。SELECT c_name,c_credit FROM c_info WHERE c_no=9710011 UNIONSELECT c_name,c_credit FROM c_info WHERE c_no=9720033第14頁/共37頁數(shù)據(jù)庫技術(shù)與應(yīng)用基礎(chǔ)教材編寫
9、組15查詢結(jié)果處理 分組統(tǒng)計(jì)(GROUP BY) 語法格式為:GROUP BY group_by_expression1 ,group_by_expression2, 篩選(HAVING) 語法格式為:HAVING 【例4.15】對(duì)s_c_info表,列出平均成績(jī)大于80的課程編號(hào)和平均成績(jī)。SELECT c_no, AVG(score) as 平均成績(jī) FROM s_c_info GROUP BY c_no HAVING AVG(score)=80第15頁/共37頁數(shù)據(jù)庫技術(shù)與應(yīng)用基礎(chǔ)教材編寫組16查詢結(jié)果處理 使用COMPUTE和COMPUTE BY子句匯總【例4.16】列出st_info
10、表中“材料科學(xué)0601班”學(xué)生的年齡及平均年齡(即年齡的明細(xì)行和匯總行)。SELECT st_id,YEAR(GETDATE()- YEAR(born_date) as 年齡 FROM st_infoWHERE cl_name = 材料科學(xué)0601班 ORDER BY st_id COMPUTE sum(YEAR(GETDATE()- YEAR(born_date)第16頁/共37頁數(shù)據(jù)庫技術(shù)與應(yīng)用基礎(chǔ)教材編寫組174.2 嵌套查詢 單值嵌套查詢 多值嵌套查詢第17頁/共37頁數(shù)據(jù)庫技術(shù)與應(yīng)用基礎(chǔ)教材編寫組184.2 嵌套查詢 嵌套查詢(子查詢) 在一個(gè)SELECT 語句的WHERE 子句或H
11、AVING 子句中嵌套另一個(gè)SELECT 語句的查詢稱為嵌套查詢,又稱子查詢。 嵌套查詢的類型 單值嵌套查詢 多值嵌套查詢第18頁/共37頁數(shù)據(jù)庫技術(shù)與應(yīng)用基礎(chǔ)教材編寫組19單值嵌套查詢 單值嵌套查詢 子查詢的返回結(jié)果是一個(gè)值的嵌套查詢稱為單值嵌套查詢 ?!纠?.18】對(duì)student_db數(shù)據(jù)庫,列出選修“大學(xué)計(jì)算機(jī)基礎(chǔ)”的所有學(xué)生的學(xué)號(hào)和成績(jī)。 操作的語句為:SELECT st_id,score FROM s_c_info WHERE c_no=(SELECT c_no FROM c_infoWHERE c_name=大學(xué)計(jì)算機(jī)基礎(chǔ))第19頁/共37頁數(shù)據(jù)庫技術(shù)與應(yīng)用基礎(chǔ)教材編寫組20多值
12、嵌套查詢 多值嵌套查詢 子查詢的返回結(jié)果是結(jié)果集的嵌套查詢稱為多值嵌套查詢。 若某個(gè)子查詢的返回值不止一個(gè),則必須在WHERE子句中指明如何使用這些返回值。通常使用條件運(yùn)算符: ANY(SOME) ALL IN第20頁/共37頁數(shù)據(jù)庫技術(shù)與應(yīng)用基礎(chǔ)教材編寫組21多值嵌套查詢舉例 使用ANY運(yùn)算符 【例4.19】對(duì)student_db數(shù)據(jù)庫,列出選修“9710011”即“大學(xué)計(jì)算機(jī)基礎(chǔ)”的學(xué)生的成績(jī)比選修“29000011”即“體育”的學(xué)生的最低成績(jī)高的學(xué)生的學(xué)號(hào)和成績(jī)。 操作的語句為:SELECT st_id,score FROM s_c_info WHERE c_no=9710011 and
13、 scoreANY(SELECT score FROM s_c_info WHERE c_no=29000011)第21頁/共37頁數(shù)據(jù)庫技術(shù)與應(yīng)用基礎(chǔ)教材編寫組22多值嵌套查詢舉例 使用ALL運(yùn)算符【例4.20】對(duì)student_db數(shù)據(jù)庫,列出選修“29000011”即“體育”的學(xué)生的成績(jī)比選修“9710011”即“大學(xué)計(jì)算機(jī)基礎(chǔ)”的學(xué)生的最高成績(jī)還要高的學(xué)生的學(xué)號(hào)和成績(jī)。 操作的語句為:SELECT st_id,score FROM s_c_info WHERE c_no=29000011 and scoreALL(SELECT score FROM s_c_info WHERE c_n
14、o=9710011)第22頁/共37頁數(shù)據(jù)庫技術(shù)與應(yīng)用基礎(chǔ)教材編寫組23多值嵌套查詢舉例 使用IN運(yùn)算符【例4. 21】對(duì)student_db數(shù)據(jù)庫,列出選修“29000011”即“體育”或選修“9710011”即“大學(xué)計(jì)算機(jī)基礎(chǔ)”的學(xué)生學(xué)號(hào)和成績(jī)。 操作的語句為:SELECT st_id,score FROM s_c_info WHERE c_no IN (SELECT c_no FROM c_info WHERE c_name=大學(xué)計(jì)算機(jī)基礎(chǔ) OR c_name=體育)第23頁/共37頁數(shù)據(jù)庫技術(shù)與應(yīng)用基礎(chǔ)教材編寫組244.3 連接查詢 連接查詢概述 內(nèi)連接 外連接第24頁/共37頁數(shù)據(jù)庫
15、技術(shù)與應(yīng)用基礎(chǔ)教材編寫組254.3 連接查詢 連接查詢的概念 一個(gè)查詢同時(shí)涉及兩個(gè)或兩個(gè)以上的表,則稱之為連接查詢。 可以根據(jù)各個(gè)表之間的邏輯關(guān)系從兩個(gè)或多個(gè)表中檢索數(shù)據(jù)。 連接查詢的類型 內(nèi)連接(Inner join) 外連接(Outer join) 交叉聯(lián)接(Cross join) 連接查詢的建立 在SELECT語句的WHERE子句中建立 在連接FROM子句中建立第25頁/共37頁數(shù)據(jù)庫技術(shù)與應(yīng)用基礎(chǔ)教材編寫組26連接查詢概述 在SELECT語句的WHERE子句中建立連接 當(dāng)需要對(duì)兩個(gè)或多個(gè)表連接時(shí),可以指定連接的列,在WHERE子句中給出連接條件,在FROM子句中指定要連接的表?!纠?.
16、22】對(duì)student_db數(shù)據(jù)庫輸出所有學(xué)生的成績(jī)單,要求給出學(xué)生的學(xué)號(hào)、姓名、課程號(hào)和成績(jī)。SELECT st_info.st_id, st_info.st_name,c_info.c_name ,s_c_info.c_no,s_c_info.scoreFROM st_info,c_info,s_c_info WHERE st_info.st_id = s_c_info.st_id and s_c_info.c_no = c_info.c_no第26頁/共37頁數(shù)據(jù)庫技術(shù)與應(yīng)用基礎(chǔ)教材編寫組274.3 連接查詢 在FROM子句中建立連接(推薦使用) 在FROM子句中指出連接時(shí)有助于將連接操
17、作與WHERE子句中的搜索條件區(qū)分開來。 FROM子句連接的語法格式:FROM join_table join_type JOIN join_table ON join_condition【例4.22】中的連接用FROM子句建立。SELECT st_info.st_id, st_info.st_name,c_info.c_name ,s_c_info.c_no,s_c_info.scoreFROM st_info INNER JOIN s_c_info ON st_info.st_id = s_c_info.st_id INNER JOIN c_info ON s_c_info.c_no =
18、c_info.c_no第27頁/共37頁數(shù)據(jù)庫技術(shù)與應(yīng)用基礎(chǔ)教材編寫組28內(nèi)連接 內(nèi)連接 查詢操作列出與連接條件匹配的數(shù)據(jù)行,它使用比較運(yùn)算符比較被連接列的列值。 內(nèi)連接的類型 等值連接 不等值連接 自然連接第28頁/共37頁數(shù)據(jù)庫技術(shù)與應(yīng)用基礎(chǔ)教材編寫組29內(nèi)連接等值連接在連接條件中使用等號(hào)“=”運(yùn)算符比較被連接列的列值,按對(duì)應(yīng)列的共同值將一個(gè)表中的記錄與另一個(gè)表中的記錄相連接,包括其中的重復(fù)列?!纠?.23】對(duì)student_db數(shù)據(jù)庫,列出男生的選課情況,要求列出學(xué)號(hào)、姓名、課程號(hào)和成績(jī)。SELECT * FROM st_info INNER JOIN s_c_info ON st_in
19、fo.st_id = s_c_info.st_id INNER JOIN c_info ON s_c_info.c_no = c_info.c_no WHERE (st_info.st_sex = 男) 第29頁/共37頁數(shù)據(jù)庫技術(shù)與應(yīng)用基礎(chǔ)教材編寫組30內(nèi)連接 不等值連接 在連接條件中使用除等于運(yùn)算符以外的其他比較運(yùn)算符比較被連接的列的列值。這些運(yùn)算符包括、=、=、!和。 【例4.24】對(duì)student_db數(shù)據(jù)庫,列出選修“9720013”課程中,成績(jī)大于學(xué)號(hào)為“2001050108”的學(xué)生該門課程成績(jī)的學(xué)生的學(xué)號(hào)及成績(jī)。SELECT a.st_id,a.score FROM s_c_in
20、fo a INNER JOIN s_c_info b ON a.scoreb.score AND a.c_no=b.c_no WHERE ( b.st_id=2001050108 ) AND (b.c_no=9720013)第30頁/共37頁數(shù)據(jù)庫技術(shù)與應(yīng)用基礎(chǔ)教材編寫組31內(nèi)連接 自然連接 在連接條件中使用等于“=”運(yùn)算符比較被連接列的列值,它使用選擇列表方式來指出查詢結(jié)果集合中所包括的列,并刪除連接表中的重復(fù)列?!纠?.25】實(shí)現(xiàn)s_c_info表和c_info表的自然連接。SELECT a.st_name, b.* FROM st_info a INNER JOIN s_c_info b
21、 ON a.st_id =b.st_id第31頁/共37頁數(shù)據(jù)庫技術(shù)與應(yīng)用基礎(chǔ)教材編寫組32外連接 外連接查詢 返回查詢結(jié)果集合中的不僅包含符合聯(lián)接條件的行(返回 FROM 子句中提到的至少一個(gè)表的所有行) 外連接的類型 左外連接 右外連接 全外連接第32頁/共37頁數(shù)據(jù)庫技術(shù)與應(yīng)用基礎(chǔ)教材編寫組33外連接 使用左外連接 左外連接通過左向外連接引用左表的所有行?!纠?.26】st_info表左外連接s_c_info表。SELECT a.st_id,a.st_name, b.c_no,b.score FROM st_info a LEFT OUTER JOIN s_c_info b ON a.s
22、t_id = b.st_id第33頁/共37頁數(shù)據(jù)庫技術(shù)與應(yīng)用基礎(chǔ)教材編寫組34外連接 使用右外連接 右外連接通過右向外連接引用右表的所有行?!纠?.27】st_info表右外連接s_c_info表。 操作的語句為:在s_c_info表中插入一條選課信息。INSERT INTO s_c_info (st_id,c_no,score) VALUES (2001060155, 29000011,100)SELECT a.st_id, a.st_name,b.c_no, b.score FROM st_info a RIGHT OUTER JOIN s_c_info b ON a.st_id = b
23、.st_id第34頁/共37頁數(shù)據(jù)庫技術(shù)與應(yīng)用基礎(chǔ)教材編寫組35外連接 使用全外連接 全外連接返回兩個(gè)表的所有行。不管兩個(gè)表的行是否滿足連接條件,均返回查詢結(jié)果集。對(duì)不滿足連接條件的記錄,另一個(gè)表相對(duì)應(yīng)字段用NULL代替。【例4.28】st_info表全外連接s_c_info表SELECT st_info.st_id, st_info.st_name,s_c_info.c_no, s_c_info.scoreFROM st_info FULL OUTER JOIN s_c_info ON st_info.st_id = s_c_info.st_id第35頁/共37頁數(shù)據(jù)庫技術(shù)與應(yīng)用基礎(chǔ)教材編寫組36本章小結(jié)(1)SQL數(shù)據(jù)查詢基本結(jié)構(gòu)為:SELECT-FROM-WHERE.(2) 帶條件查詢:可以是單表的條件表達(dá)式,也可以是多表之間的條件表達(dá)式。(3) 查詢結(jié)果處理:ORDER BY、INTO、UNION、GROUP BY、HAVING。(4) 嵌套查詢 (5) 多表查詢:等值和非等值連接查詢。(6) 連查詢:內(nèi)部連接、外部連接和交叉連接。外部連接又分為左外連接、右外聯(lián)接和全外連接。第36頁/共37頁數(shù)據(jù)庫技術(shù)與應(yīng)用基礎(chǔ)教材編寫組37感謝您的觀看!第37頁/共37頁
- 溫馨提示:
1: 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 川渝旅游日記成都重慶城市介紹推薦景點(diǎn)美食推薦
- XX國(guó)有企業(yè)黨委書記個(gè)人述責(zé)述廉報(bào)告及2025年重點(diǎn)工作計(jì)劃
- 世界濕地日濕地的含義及價(jià)值
- 20XX年春節(jié)節(jié)后復(fù)工安全生產(chǎn)培訓(xùn)人到場(chǎng)心到崗
- 大唐女子圖鑒唐朝服飾之美器物之美繪畫之美生活之美
- 節(jié)后開工第一課輕松掌握各要點(diǎn)節(jié)后常見的八大危險(xiǎn)
- 廈門城市旅游介紹廈門景點(diǎn)介紹廈門美食展示
- 節(jié)后開工第一課復(fù)工復(fù)產(chǎn)十注意節(jié)后復(fù)工十檢查
- 傳統(tǒng)文化百善孝為先孝道培訓(xùn)
- 深圳城市旅游介紹景點(diǎn)推薦美食探索
- 節(jié)后復(fù)工安全生產(chǎn)培訓(xùn)勿忘安全本心人人講安全個(gè)個(gè)會(huì)應(yīng)急
- 預(yù)防性維修管理
- 常見閥門類型及特點(diǎn)
- 設(shè)備預(yù)防性維修
- 2.乳化液泵工理論考試試題含答案