復(fù)件數(shù)據(jù)庫應(yīng)用技術(shù)章語言_第1頁
復(fù)件數(shù)據(jù)庫應(yīng)用技術(shù)章語言_第2頁
復(fù)件數(shù)據(jù)庫應(yīng)用技術(shù)章語言_第3頁
復(fù)件數(shù)據(jù)庫應(yīng)用技術(shù)章語言_第4頁
復(fù)件數(shù)據(jù)庫應(yīng)用技術(shù)章語言_第5頁
已閱讀5頁,還剩28頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第3節(jié)SQL的數(shù)據(jù)查詢第3章關(guān)系數(shù)據(jù)庫語言SQL2主要內(nèi)容簡單查詢常用函數(shù)及其使用方式(自學(xué))SQL高級查詢技術(shù)謂詞演算查詢3一、簡單查詢1、SELECT和FROM子句

SELECT<列名表>FROM<表名表>[WHERE<條件>]

作用

SELECT:π,用來列出查詢結(jié)果中的屬性

FROM:×,用來列出需掃描的關(guān)系WHERE:σ,指定選擇記錄的條件42、無條件查詢例3.16查詢教學(xué)管理數(shù)據(jù)庫中全部學(xué)生的基本信息。

SELECT*FROMS;52、無條件查詢(續(xù))例3.17查詢教學(xué)管理數(shù)據(jù)庫中全部教師的教職工編號、姓名、職稱和所屬教研室。

SELECTT#,TNAME,TITLEOF,TRSECTIONFROMT;62、無條件查詢聚合函數(shù)

聚合函數(shù)能夠根據(jù)查詢結(jié)果的記錄集或根據(jù)查詢結(jié)果的記錄集中某列值的特點返回一個匯總信息的函數(shù)。

輸入——值的一個集合

返回——單個值7聚合函數(shù)

COUNT(*)

計算元組的個數(shù)

COUNT(列名)

計算某一列中數(shù)據(jù)的個數(shù)

COUNTDISTINCT(列名)計算某一列中不同值的個數(shù)

SUM(列名)計算某一數(shù)據(jù)列中值的總和

AVG(列名)計算某一數(shù)據(jù)列中值的平均值

MIN(列名)求(字符、日期、數(shù)值列)的最小值

MAX(列名)求(字符、日期、數(shù)值列)的最大值2、無條件查詢聚合函數(shù)(續(xù))8例3.18查詢開課總門數(shù)

SELECTCOUNT(*)FROMC;例3.19計算所有學(xué)生所學(xué)課程的最高分數(shù)、最低分數(shù)和平均分數(shù)。SELECTMAX(GRADE),MIN(GRADE),AVG(GRADE)FROMSC;2、無條件查詢聚合函數(shù)(例)93、單條件查詢例3.20查詢所有學(xué)習(xí)了計算機網(wǎng)絡(luò)課(課程號為C403001)的學(xué)生的學(xué)號和成績SELECTS#,GRADEFROMSCWHEREC#=‘C403001’;104、多條件查詢例3.21查詢選修了計算機網(wǎng)絡(luò)課(課程號為C403001)或信息安全技術(shù)課(課程號為C403002)的學(xué)生的學(xué)號SELECTS#FROMSCWHEREC#=‘C403001’

ORC#=‘C403002’

;115、分組查詢

SELECT<列名表>FROM<表名表>[WHERE<條件>][GROUPBY<列名表>]作用:對滿足WHERE條件的元組集按照指定的列的值進行分組,該屬性列值相等的元組為一組12例例3.23計算各個同學(xué)的平均分數(shù)。

SELECTS#,AVG(GRADE)FROMSC

GROUPBYS#;135、分組查詢

SELECT<列名表>FROM<表名表>[WHERE<條件>][GROUPBY<列名表>

[HAVING<分組條件>]]作用:指定GROUPBY子句形成的分組所應(yīng)滿足的條件5、分組查詢(續(xù))14例例3.25查詢學(xué)生總數(shù)超過300人的專業(yè)及其具體的總?cè)藬?shù)

SELECTSCODE,COUNT(*)FROMSGROUPBYSCODEHAVINGCOUNT(*)>300;156、結(jié)果的排序

ORDERBY<列名>[ASC/DESC][,<列名>[

ASC/DESC]]…;作用:依據(jù)給定列的值,控制查詢結(jié)果中元組的排列順序。166、結(jié)果的排序(例)例3.27按學(xué)號遞增、課程成績遞減的顯示順序顯示學(xué)生的課程成績SELECTS#,C#,GRADEFROMSCORDERBYS#ASC,GRADEDESC;177、字符串的匹配下劃線通配符_:代表任意一個字符百分號通配符%:代表任意長度的字符串例3.28查詢S中姓李的學(xué)生的學(xué)號和姓名SELECTS#,SNAMEFROMSWHERESNAMELIKE‘李%’;18簡單查詢語句SELECT<列名或列表達式序列>

FROM<表名表>

[WHERE<條件>]

[GROUPBY<列名表>

[HAVING<分組條件>]]

[ORDERBY<列名>[ASC/DESC]

[,<列名>[ASC/DESC]]…];讀取FROM子句指定的基本表或視圖的數(shù)據(jù),執(zhí)行笛卡爾積操作選取滿足WHERE子句中給出的條件表達式的元組按GROUPBY子句中指定列的值進行分組,同時提取滿足HAVING子句中組條件表達式的那些組按SELECT子句中給出的列名或列表達式求值輸出ORDERBY子句對輸出的結(jié)果(目標(biāo)表)進行排序,按指定列的值升序或降序排列19二、SQL高級查詢技術(shù)1、多表聯(lián)接查詢例3.32查詢所有學(xué)習(xí)了數(shù)據(jù)結(jié)構(gòu)課(課程號為C401001)的學(xué)生的學(xué)號和姓名

SELECTS.S#,SNAMEFROMS,SCWHERES.S#=SC.S#ANDC#=‘C401001’;202、嵌套查詢在SQL語言中,如果在一個SELECT語句的WHERE子句中嵌入了另一個SELECT語句,則稱這種查詢?yōu)榍短撞樵儭?/p>

WHERE子句中的SELECT語句稱為子查詢,外部的查詢稱為父查詢。21SELECT*FROMSWHERECLASS=()ANDSSEX=‘女’;2、嵌套查詢例示例查詢張華同學(xué)(學(xué)號為200401001)的那個班的女同學(xué)的基本信息。SELECTCLASSFROMSWHERES#=‘200401001’223、查詢中的表更名3、查詢中的表更名舊名AS新名例3.35檢索成績比該課程平均成績低的學(xué)生成績表。SELECTS#,C#,GRADEFROMSCWHEREGRADE<(SELECTAVG(GRADE)FROMSCASXWHEREX.C#=SC.C#);23三、謂詞演算查詢所謂基于謂詞演算的查詢是指把謂詞看作是特殊比較操作符、應(yīng)用于WHERE子句的條件表達式中的查詢。操作符說明betweenAandBnotbetweenAandBlikeinnotinanysomeallexistsnotexists

某列的數(shù)值區(qū)間是[A,B]某列的數(shù)值區(qū)間在[A,B]外兩個字符串的部分字符相等,其余可以任意某列的某個值屬于集合成員中的一個成員某列的值不屬于集合成員中的任何一個成員某列的值滿足一個條件即可滿足集合中的某些值某列的值滿足子查詢中所有值的記錄總存在一個值滿足條件不存在任何值滿足條件24

格式:<集合1>IN<集合2><集合1>NOTIN<集合2>含義:1、IN和NOTIN

如果集合1中的數(shù)據(jù)是集合2中的成員,那么其邏輯值為true,否則為false.25例3.36查詢所有學(xué)習(xí)了數(shù)據(jù)結(jié)構(gòu)課(課程號為C401001)的學(xué)生的學(xué)號和姓名。

SELECTS.S#,SNAMEFROMSWHERES#IN(SELECTS#FROMSCWHEREC#=‘C401001’);1、IN和NOTIN例26

格式:<列數(shù)據(jù)>θANY<集合><列數(shù)據(jù)>θSOME<集合>含義:2、ANY和SOME如果比較運算符θ左邊的數(shù)據(jù)與右邊集合中至少一個元素滿足θ運算,那么其邏輯值為true,否則為false.27例3.38查詢所有學(xué)習(xí)了數(shù)據(jù)結(jié)構(gòu)課(課程號為C401001)的學(xué)生的學(xué)號和姓名。解法3

SELECTS.S#,SNAMEFROMSWHERES#=ANY(SELECTS#FROMSCWHEREC#=‘C401001’);2、ANY和SOME

例28

格式:<列數(shù)據(jù)>θALL<集合>含義:3、ALL如果比較運算符θ左邊的數(shù)據(jù)與右邊集合中所有元素滿足θ運算,那么其邏輯值為true,否則為false.293、ALL

例例3.39查詢考試成績大于計算機科學(xué)專業(yè)(專業(yè)代碼S0401)所有學(xué)生課程成績的學(xué)生的基本信息SELECTS.*FROMS,SCWHERES.S#=SC.S#ANDGRADE>ALL(SELECTGRADEFROMS,SCWHERES.S#=SC.S#ANDSCODE=’S0401’);30

格式:EXISTS(<集合>)

NOTEXISTS(<集合>)含義:4、EXISTS和NOTEXISTS

EXISTS是存在量詞,當(dāng)集合中至少存在一個元素(非空)時,其邏輯值為true,否則為false。NOTEXISTS是空集判斷,當(dāng)集合中不存在任何元素(為空)時,其邏輯值為true,否則為false。31例3.40查詢所有學(xué)習(xí)了數(shù)據(jù)結(jié)構(gòu)課(課程號為C401001)的學(xué)生的學(xué)號和姓名。

SELECTS.S#,SNAMEFROMSWHEREEXISTS(SELECT*FROMSCWHERESC.S#=S.S#ANDC#=‘C401001’);4、EXISTS和NOTEXISTS例32

溫馨提示

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

評論

0/150

提交評論