SQL的數(shù)據(jù)查詢課件_第1頁
SQL的數(shù)據(jù)查詢課件_第2頁
SQL的數(shù)據(jù)查詢課件_第3頁
SQL的數(shù)據(jù)查詢課件_第4頁
SQL的數(shù)據(jù)查詢課件_第5頁
已閱讀5頁,還剩47頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)

文檔簡介

1、第3節(jié) SQL的數(shù)據(jù)查詢第5章 關(guān)系數(shù)據(jù)庫語言SQL主要內(nèi)容容簡單查詢詢常用函數(shù)數(shù)及其使使用方式式SQL高級查詢詢技術(shù)謂詞演算算查詢2數(shù)據(jù)查詢詢SELECT命令的格格式與基基本使用用SELECTALL|DISTINCTTOPNPERCENTWITHTIES列名AS別名1,列名AS別名2INTO新表名FROM表名1或視圖名名1AS表1別名 ,表名2或視圖名名2AS表2別名WHERE檢索條件件GROUPBYHAVINGORDERBYASC|DESC投影 選取 3一、簡單單查詢1、SELECT和FROM子句SELECTFROMWHERE作用SELECT:,用來列列出查詢詢結(jié)果中中的屬性性FROM:,

2、用來列列出需掃掃描的關(guān)關(guān)系WHERE:,指定選擇擇記錄的的條件42、無條件件查詢例3.16查詢教學(xué)學(xué)管理數(shù)數(shù)據(jù)庫中中全部學(xué)學(xué)生的基基本信息息。SELECT*FROMS;52、無條件件查詢(續(xù))例3.17查詢教學(xué)學(xué)管理數(shù)數(shù)據(jù)庫中中全部教教師的教教職工編編號、姓姓名、職職稱和所所屬教研研室。SELECTT#,TNAME,TITLEOF,TRSECTIONFROMT;62、無條件件查詢聚聚合函函數(shù)聚合函數(shù)數(shù)能夠根據(jù)據(jù)查詢結(jié)結(jié)果的記記錄集或或根據(jù)查查詢結(jié)果果的記錄錄集中某某列值的的特點返返回一個個匯總信信息的函函數(shù)。輸入值的一個個集合返回單個值78聚合函數(shù)數(shù)COUNT(*)計算元組組的個數(shù)數(shù)COUNT

3、(列名)計算某一一列中數(shù)數(shù)據(jù)的個個數(shù)COUNTDISTINCT(列名)計算某一一列中不不同值的的個數(shù)SUM(列名)計算某一一數(shù)據(jù)列列中值的的總和AVG(列名)計算某一一數(shù)據(jù)列列中值的的平均值值MIN(列名)求(字符符、日期期、數(shù)值值列)的的最小值值MAX(列名)求(字符符、日期期、數(shù)值值列)的的最大值值2、無條件件查詢聚聚合函函數(shù)(續(xù)續(xù))9例3.18查詢開課課總門數(shù)數(shù)SELECTCOUNT(*)FROMC;例3.19計算所有有學(xué)生所所學(xué)課程程的最高高分?jǐn)?shù)、最低分分?jǐn)?shù)和平平均分?jǐn)?shù)數(shù)。SELECTMAX(GRADE),MIN(GRADE),AVG(GRADE)FROMSC;2、無條件件查詢聚聚合函

4、函數(shù)(例例)103、單條件件查詢例3.20查詢所有有學(xué)習(xí)了了計算機機網(wǎng)絡(luò)課課(課程程號為C403001)的學(xué)生生的學(xué)號號和成績績SELECTS#,GRADEFROM SCWHEREC#=C403001;114、多條件件查詢例3.21查詢選修修了計算算機網(wǎng)絡(luò)絡(luò)課(課課程號為為C403001)或信息息安全技技術(shù)課(課程號號為C403002)的學(xué)生生的學(xué)號號SELECTS#FROM SCWHEREC#=C403001ORC#=C403002;125、分組查查詢SELECTFROMWHEREGROUPBY作用:對滿足WHERE條件的元元組集按按照指定定的列的的值進行行分組,該屬性性列值相相等的元元組為

5、一一組13例例3.23計算各個個同學(xué)的的平均分分?jǐn)?shù)。SELECTS#,AVG(GRADE)FROMSCGROUPBYS#;SELECTFROMWHEREGROUPBYHAVING作用:指定GROUPBY子句形成成的分組組所應(yīng)滿滿足的條條件5、分組查查詢(續(xù)續(xù))1415例例3.25查詢學(xué)生生總數(shù)超超過300人的專業(yè)業(yè)及其具具體的總總?cè)藬?shù)SELECTSCODE,COUNT(*)FROM SGROUPBYSCODEHAVINGCOUNT(*)300;166、結(jié)果的的排序ORDERBY ASC/DESC, ASC/DESC;作用:依據(jù)給定定列的值值,控制制查詢結(jié)結(jié)果中元元組的排排列順序序。176、結(jié)果

6、的的排序(例)例3.27按學(xué)號遞遞增、課課程成績績遞減的的顯示順順序顯示示學(xué)生的的課程成成績SELECTS#,C#,GRADEFROM SCORDERBYS#ASC,GRADEDESC;187、字符串串的匹配配下劃線通通配符_:代表任任意一個個字符百分號通通配符%:代表任任意長度度的字符符串例3.28查詢S中姓李的的學(xué)生的的學(xué)號和和姓名SELECTS#,SNAMEFROM SWHERESNAMELIKE李%;19簡單查詢詢語句SELECTFROMWHEREGROUPBYHAVINGORDERBY ASC/DESC, ASC/DESC;讀取FROM子句指定定的基本本表或視圖的數(shù)據(jù),執(zhí)行笛笛卡爾積

7、積操作選取滿足足WHERE子句中給給出的條條件表達達式的元元組按GROUPBY子句中指指定列的的值進行行分組,同時提提取滿足足HAVING子句中組組條件表表達式的的那些組組按SELECT子句中給給出的列列名或列列表達式式求值輸輸出ORDERBY子句對輸輸出的結(jié)結(jié)果(目目標(biāo)表)進行排排序,按按指定列列的值升升序或降降序排列列20二、SQL高級查詢詢技術(shù)1、多表聯(lián)聯(lián)接查詢詢例3.32查詢所有有學(xué)習(xí)了了數(shù)據(jù)結(jié)結(jié)構(gòu)課(課程號號為C401001)的學(xué)生生的學(xué)號號和姓名名SELECTS.S#,SNAMEFROM S,SCWHERES.S# =SC.S#ANDC#=C401001;212、嵌套查查詢在SQL

8、語言中,如果在在一個SELECT語句的WHERE子句中嵌嵌入了另另一個SELECT語句,則則稱這種種查詢?yōu)闉榍短撞椴樵儭HERE子句中的的SELECT語句稱為為子查詢,外部的的查詢稱稱為父查詢。22SELECT*FROM SWHERECLASS=()ANDSSEX=女;2、嵌套查查詢例例示例查詢張華華同學(xué)(學(xué)號為為200401001)的那那個班的的女同學(xué)學(xué)的基本本信息。SELECTCLASSFROM SWHERES#=200401001233、查詢中中的表更更名3、查詢中中的表更更名舊名AS新名例3.35檢索成績績比該課課程平均均成績低低的學(xué)生生成績表表。SELECTS#,C#,GRADEF

9、ROMSCWHEREGRADE(SELECTAVG(GRADE)FROMSCASXWHEREX.C#=SC.C#);24三、謂詞詞演算查查詢所謂基于于謂詞演演算的查查詢是指指把謂詞詞看作是是特殊比比較操作作符、應(yīng)應(yīng)用于WHERE子句句的條件件表達式式中的查查詢。操作符 說明 between A and Bnot between A and Blikeinnot inany someallexistsnot exists 某列的數(shù)值區(qū)間是A,B某列的數(shù)值區(qū)間在A,B外兩個字符串的部分字符相等,其余可以任意某列的某個值屬于集合成員中的一個成員某列的值不屬于集合成員中的任何一個成員某列的值滿足一個條

10、件即可滿足集合中的某些值某列的值滿足子查詢中所有值的記錄總存在一個值滿足條件不存在任何值滿足條件25格式:INNOTIN含義:1、IN和NOTIN如果集合合1中的數(shù)據(jù)據(jù)是集合合2中的成員員,那么么其邏輯輯值為true,否則為為false.26例3.36查詢所有有學(xué)習(xí)了了數(shù)據(jù)結(jié)結(jié)構(gòu)課(課程號號為C401001)的學(xué)生生的學(xué)號號和姓名名。SELECTS.S#,SNAMEFROMSWHERES#IN(SELECT S#FROMSCWHEREC#=C401001);1、IN和NOTIN例27格式:ANYSOME含義:2、ANY和和SOME如果比較較運算符符左邊的數(shù)數(shù)據(jù)與右右邊集合合中至少一個個元素滿足

11、足運算,那那么其邏邏輯值為為true,否則為為false.28例3.38查詢所有有學(xué)習(xí)了了數(shù)據(jù)結(jié)結(jié)構(gòu)課(課程號號為C401001)的學(xué)生生的學(xué)號號和姓名名。解法3SELECTS.S#,SNAMEFROMSWHERES#=ANY(SELECT S#FROMSCWHEREC#=C401001);2、ANY和和SOME例29格式:ALL含義:3、ALL如果比較較運算符符左邊的數(shù)數(shù)據(jù)與右右邊集合合中所有有元素滿滿足運算,那那么其邏邏輯值為為true,否則為為false.303、ALL例例3.39查查詢考試試成績大大于計算機科科學(xué)專業(yè)業(yè)(專業(yè)代代碼S0401)所有有學(xué)生課課程成績績的學(xué)生生的基本本信息S

12、ELECTS.*FROM S,SCWHERES.S#=SC.S#ANDGRADEALL(SELECT GRADEFROM S,SCWHERES.S#=SC.S#ANDSCODE=S0401);31格式:EXISTS()NOTEXISTS()含義:4、EXISTS和NOTEXISTSEXISTS是存在量量詞,當(dāng)當(dāng)集合中中至少存在在一個元素(非非空)時時,其邏邏輯值為為true,否則為為false。NOTEXISTS是空集判判斷,當(dāng)當(dāng)集合中中不存在任任何元素素(為空)時,其其邏輯值值為true,否則為為false。32例3.40查詢所有有學(xué)習(xí)了了數(shù)據(jù)結(jié)結(jié)構(gòu)課(課程號號為C401001)的學(xué)生生的學(xué)

13、號號和姓名名。SELECTS.S#,SNAMEFROMSWHEREEXISTS (SELECT*FROMSCWHERESC.S#= S.S#ANDC#=C401001);4、EXISTS和NOTEXISTS例33SELECTC#,AVG(GRADE)FROM SC,TEACH,TWHERESC.C#=TEACH.C#ANDTEACH.T#=T.T#ANDTNAMELike張%GROUPBYC#ORDERBY2DESC;例:求張老師師所授課課程的每每門課程程的學(xué)生生平均成成績,并并按平均均成績降降序輸出出。第4節(jié)SQL的視圖操操作第5章關(guān)關(guān)系數(shù)據(jù)據(jù)庫語言言SQL主要內(nèi)容容視圖的概概念視圖的定定義

14、在視圖上上進行查查詢操作作用戶視圖圖對數(shù)據(jù)據(jù)庫系統(tǒng)統(tǒng)設(shè)計和和性能帶帶來的影影響35一、視圖圖的概念念視圖是從從一個或或幾個基基本表(或視圖圖)通過過視圖定定義語句句所描述述的映射射關(guān)系導(dǎo)導(dǎo)出的表表。數(shù)據(jù)庫中中,只有有視圖的的定義,沒有視視圖的數(shù)數(shù)據(jù)。這這些數(shù)據(jù)據(jù)還在基基本表中中。因此此,視圖圖是一種種“虛表”。36SSNAMECGRADESSNAMEAGESEXS256Wang21FSCGRADES256C580CGSSCS256WangC580查詢語句學(xué)生成績績視圖CG(S,SNAME,C,GRADE)37CREATEVIEW ()ASWITHREAD ONLY|WITH CHECK OPT

15、ION;新定義的的視圖的的各個列列的名稱稱一一對應(yīng)視圖被定定義成一一個只讀讀視圖,不能進進行插入入、刪除除和修改改操作表示用戶戶必須保保證每當(dāng)當(dāng)向該視視圖插入入或更新新數(shù)據(jù)時時,所插插入或更更新的數(shù)數(shù)據(jù)能從從該視圖圖查詢出出來。二、視圖圖的定義義38例3.45定義平均均成績視視圖(S#,AVG_GRADE)CREATEVIEWA_GRADE(S#,AVG_GRADE)ASSELECTS#,AVG(GRADE)FROMSCWHEREGRADEISNOTNULLGROUPBYS#;查詢結(jié)果果中有表表達式或或聚合函函數(shù),必必須重新新命名二、視圖圖的定義義 例39三、在視圖上上進行查查詢操作作數(shù)據(jù)查詢

16、詢視圖的查查詢方法法和基本本表一樣樣,但有有了視圖圖后,查查詢語句句變得非非常簡單單。SELECT*FROM A_GRADE;40四、用戶戶視圖對對數(shù)據(jù)庫庫系統(tǒng)設(shè)設(shè)計和性性能帶來來的影響響1、視圖能能夠簡化化用戶的的操作2、視圖使使用戶能能以多種種角度看看待同一一數(shù)據(jù)3、視圖對對重構(gòu)數(shù)數(shù)據(jù)庫提提供了一一定程度度的邏輯輯獨立性性4、視圖能能夠?qū)C機密數(shù)據(jù)據(jù)提供安安全保護護41第5節(jié)SQL中帶有子子查詢的的數(shù)據(jù)更更新操作作第5章關(guān)關(guān)系數(shù)據(jù)據(jù)庫語言言SQL主要內(nèi)容容帶有子查查詢的數(shù)數(shù)據(jù)插入入操作帶有子查查詢條件件的數(shù)據(jù)據(jù)更新操操作43復(fù)習(xí)數(shù)數(shù)據(jù)插入入1、數(shù)據(jù)插插入向表中插插入一行行(單元元組)數(shù)數(shù)據(jù)

17、。INSERTINTO ()VALUES();44一、帶有有子查詢詢的數(shù)據(jù)據(jù)插入操操作向表中插插入一個個子查詢詢得到的的數(shù)據(jù)。INSERTINTO();子查詢是是一個合合法的SELECT查詢語句句。45例1設(shè)在教學(xué)學(xué)管理數(shù)數(shù)據(jù)庫系系統(tǒng)中,要建立立某些臨臨時表來來輔助有有關(guān)管理理過程。若其中中有一個個臨時表表用于暫暫存選修修了“信息安全全技術(shù)”課程的學(xué)學(xué)生的學(xué)學(xué)號、姓姓名、專專業(yè)名稱稱和班級級,表的的格式為為:S_C(S#, SNAME,SSNAME, CLASS)則將從有有關(guān)表中中查詢出出的數(shù)據(jù)據(jù)組成的的記錄插插入該表表的插入入語句為為:46例1續(xù)INSERTINTOS_C(S#, SNAME,SSNAME, CLASS)SELECTS.S#,SNAME, SSNAME,CLASSFROM S, SSWHERESS.SCODE#=S.SCODE#ANDS#IN(SELECT SC.S#FROM SC,CWHERESC.C#=C.C#ANDCNAME=“信息安全全技術(shù)”);47INSERTINTOS_AVG(S#,AVG_GRAGE)SELECTS#,AVG(GRADE)FROM SCWHERES#IN(SELECTS#FROMSWHERESSEX =女)GROU

溫馨提示

  • 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)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論