MySQL數據庫 3.6 子查詢與union查詢教案_第1頁
MySQL數據庫 3.6 子查詢與union查詢教案_第2頁
MySQL數據庫 3.6 子查詢與union查詢教案_第3頁
MySQL數據庫 3.6 子查詢與union查詢教案_第4頁
MySQL數據庫 3.6 子查詢與union查詢教案_第5頁
已閱讀5頁,還剩1頁未讀, 繼續免費閱讀

下載本文檔

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

文檔簡介

教案首頁課程名稱MySQL數據庫開發本節課題任務3.6子查詢與集合查詢授課方式理實一體化教學參考及教具姜云橋主編.MySQL數據庫開發.臨科院:教務處,2023計算機MySQL數據庫軟件多媒體教學系統資料包教學目標及基本要求熟練使用子查詢方式完成各種查詢需求使用合并查詢完成查詢需求掌握子查詢可以出現的位置。掌握標量子查詢掌握列子查詢掌握行子查詢掌握表子查詢掌握集合查詢培養學生分析問題,解決問題的能力教學重點教學難點標量子查詢、列子查詢、行子查詢、表子查詢以及合并查詢掌握子查詢和集合查詢的操作方法與技巧教學小結作業及要求按照任務書做好預習任務利用數據庫rsgl完成標量子查詢、列子查詢、行子查詢、表子查詢以及合并查詢。教后反思注意:用微課視頻每個典型操作做示范

教案用紙教學內容、方法和過程附記任務3.6子查詢與集合查詢【任務要求】利用數據庫jxgl中的student(學生信息表)、course(課程表)、score(成績表)、department(院系單位表)、teacher(教師表)和teach(講授表),完成標量子查詢、列子查詢、行子查詢、表子查詢以及合并查詢。【任務必備知識】3.6.1子查詢子查詢是指嵌套在其他sql語句(如insert、delete、select、update等)中的查詢語句。子查詢也稱為內查詢,必須位于括號之中;包含子查詢的查詢被稱為外查詢。MySQL中的子查詢按照返回結果可以分為以下幾種類型: 標量子查詢:返回單個值(一行一列)的子查詢。 列子查詢:返回單列結果(多行一列)的子查詢。 行子查詢(RowSubquery):返回單行結果(一行多列)的子查詢,標量子查詢是行子查詢的一個特例。 表子查詢(TableSubquery):返回一個虛擬表(多行多列)的子查詢,行子查詢是表子查詢的一個特例。按照內查詢與外查詢之間的關系可分為: 非關聯子查詢:內查詢不依賴外查詢的信息,可獨立運行。 關聯子查詢:內查詢引用外查詢的字段,無法獨立運行。一、標量子查詢是指子查詢返回的是單一值的標量,如一個數字或一個字符串??梢允褂?、>、<、>=、<=、<>等操作符對子查詢的標量結果進行比較?!救蝿?.6.1】查詢成績表score,返回大于平均成績的記錄。mysql>select*->fromscore->wheremark>(selectavg(mark)fromscore);如上述查詢所示,標量子查詢的結果如同一個常量值一樣,返回一個平均值。二、列子查詢指子查詢返回的結果集是N行一列,該結果通常來自對表的某個字段查詢返回,可以使用in、any、some和all等操作符,含義如下:in 等于任何一個值即可all 結合比較運算符使用,滿足所有值的比較any/some 結合比較運算符使用,滿足任何一個值的比較即可【任務3.6.2】查詢無授課任務的老師的信息。mysql>select*fromteacherwheret_noin(selectdistinctt_nofromteach);三、行子查詢子查詢返回的結果集是一行N列,該子查詢的結果通常是對表的某行數據進行查詢而返回的結果集?!救蝿?.6.3】查詢與”劉光明“同學同性別同系部的學生的基本信息。mysql>select*->fromstudent->where(s_sex,d_no)=(selects_sex,d_nofromstudentwheres_name='劉光明')->ands_name<>'劉光明';四、表子查詢子查詢返回的結果集是N行N列的一個表數據。表子查詢通常用于FROM子句或者查詢條件中?!救蝿?.6.4】使用表子查詢獲取各系部名稱和學生的數量。mysql>selectd.d_nameas'系部名稱',ifnull(s.num,0)as'學生數量'->fromdepartmentdleftjoin(->selectd_no,count(*)asnumfromstudentgroupbyd_no->)s->ond.d_no=s.d_no;五、關聯子查詢內部查詢引用了外部查詢列,即內部查詢會對外部查詢的每行進行一次計算,需要注意,使用關聯子查詢是最容易出現性能的地方。【任務3.6.5】使用關聯子查詢獲得各個系部的教師的數量,顯示系部名稱,教師數量。mysql>selectd.d_nameas'系部名稱',->(selectcount(*)fromteachertwheret.d_no=d.d_no)as'教師數量'->fromdepartmentd;六、exists操作符exists檢查指定查詢是否產生某些行。根據子查詢是否返回行,exists僅返回true或false,不會返回unkown,這是和其他操作符(如in、any、all等)的區別,notexists同樣如此,只不過功能相反?!救蝿?.6.6】返回不存在女性學生的系部名稱。mysql>selectd.d_name->fromdepartmentd->wherenotexists(->select1fromstudentstwherest.d_no=d.d_noandst.s_sex='女');3.6.2合并查詢union操作符用于將兩個查詢結果合并成一個結果集?;菊Z法格式如下:selectcol_a1,col_a2,...fromtable1union[distinct|all]selectcol_b1,col_b2,...fromtable2;說明:1)列的數據類型必須兼容(如col_a1列和col_b1列,col_a2列和col_b2列)類型不必完全相同,但是必須可以隱式轉換。2)distinct表示將合并后的結果集進行去重;all表示保留結果集中的重復記錄;如果省略,默認為distinct。3)每個select語句中的列也必須以相同的順序排列說明:union和unionall的orderby子句要寫在最后一條select語句后面,雖然orderby看似只是最后一條select語句的組成部分,但實際上MySQL將用它來排序select語句返回的所有結果。如果合并的查詢需要分別排序,可以選擇下面的語法:(selectcol_a1,col_a2,...fromtable1)union[distinct|all](selectcol_b1,col_b2,...fromtable2)【項目實踐】在人事管理數據庫rsgl中進行如下操作1.查詢和趙劍同職稱、學歷、政治背景的員工的姓名、職稱、學歷、政治背景,結果如下:+++++|e_name|professional|education|political|+++++|胡曉群|講師|博士|黨員|+++++2.查詢沒有員工的部門的名稱,結果如下:++|d_name|++|宣傳部||后勤處||金融學院|++3.查年齡大于50,并且不是信息學院與外語學院的員工姓名和性別,結果如下:+++|e_name|sex|+++|李明|男||張偉鍵|男||余明平|男||蘇小明|男||王君君|女||歐陽|女||蘇珍珍|女|+++4.查詢收入最高(收入=基本收入+福利+補貼-公積金-稅-其他)和最低的員工編號和收入,結果如下:+++|e_id|income|+++|100331|10

溫馨提示

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

評論

0/150

提交評論