版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、書(shū)名:關(guān)系型數(shù)據(jù)庫(kù)基礎(chǔ)ISBN: 978-7-111-43036-0出版社:機(jī)械工業(yè)出版社本書(shū)配有電子課件1關(guān)系型數(shù)據(jù)庫(kù)基礎(chǔ)項(xiàng)目一:“學(xué)生成績(jī)管理系統(tǒng)”數(shù)據(jù)庫(kù)設(shè)計(jì)和應(yīng)用任務(wù)四:數(shù)據(jù)查詢(xún)2任務(wù)四 數(shù)據(jù)查詢(xún)知識(shí)目標(biāo)了解數(shù)據(jù)查詢(xún)的方法。了解對(duì)查詢(xún)結(jié)果進(jìn)行篩選的方法。了解對(duì)查詢(xún)結(jié)果進(jìn)行排序的方法。了解對(duì)查詢(xún)結(jié)果進(jìn)行分組和統(tǒng)計(jì)的方法。了解從多個(gè)表中查詢(xún)關(guān)聯(lián)數(shù)據(jù)的方法。能力目標(biāo)能夠根據(jù)要求,從數(shù)據(jù)表中查詢(xún)滿(mǎn)足檢索條件的記錄。能夠根據(jù)要求,對(duì)查詢(xún)的結(jié)果排序。能夠根據(jù)要求,對(duì)查詢(xún)結(jié)果進(jìn)行分組篩選和統(tǒng)計(jì)。能夠根據(jù)要求,從不同的數(shù)據(jù)表中檢索相關(guān)聯(lián)的記錄。能夠根據(jù)實(shí)際業(yè)務(wù)中對(duì)數(shù)據(jù)查詢(xún)的要求,綜合運(yùn)用各種查詢(xún)方法,編
2、寫(xiě)相應(yīng)的查詢(xún)語(yǔ)句。34.1 任務(wù)描述根據(jù)“學(xué)生成績(jī)管理系統(tǒng)”的客戶(hù)需求,完成與數(shù)據(jù)查詢(xún)相關(guān)的功能44.2 任務(wù)實(shí)施無(wú)論采用何種類(lèi)型的查詢(xún),對(duì)數(shù)據(jù)的查詢(xún)都是采用SELECT語(yǔ)句進(jìn)行。SELECT 語(yǔ)句的完整語(yǔ)法較復(fù)雜,但是其主要的子句可歸納如下:SELECT 列名列表FROM 表名 WHERE 查詢(xún)條件 GROUP BY 分組表達(dá)式 HAVING 統(tǒng)計(jì)條件 ORDER BY 排序表達(dá)式 54.2.1 步驟一:選擇列的查詢(xún)(1)指定列任務(wù)描述:查詢(xún)所有學(xué)生的學(xué)號(hào)、姓名和班級(jí)信息。分析:將需要的列依次在SELECT之后的“列名列表”中列出,列與列之間用逗號(hào)間隔開(kāi)SELECT stuNo,name,c
3、lassName FROM tb_student6提示:SELECT語(yǔ)句的“列名列表”中,各個(gè)列的先后順序可以與表中的順序不一致。良好的查詢(xún)習(xí)慣是在Select語(yǔ)句中指定出所需要查詢(xún)的列,而不是“Select * from 表名”的形式。這樣,不需要的列中的數(shù)據(jù)就不會(huì)出現(xiàn)在查詢(xún)結(jié)果中,節(jié)約了系統(tǒng)的開(kāi)銷(xiāo),提高了運(yùn)行效率。7(2)給列取別名任務(wù)描述:如圖所示,要求查詢(xún)班級(jí)的信息,列名分別顯示:“班級(jí)名”,“班主任”和“所在系”。8給列取別名在顯示結(jié)果集時(shí),可以指定顯示的名字(通常也叫別名)來(lái)代替原來(lái)的列名。有3種方法指定別名:通過(guò)“列名 AS 別名”形式通過(guò)“列名 別名”形式通過(guò)“別名 = 列名”
4、形式9(3)計(jì)算列任務(wù)描述:如圖所示,要求查詢(xún)學(xué)生的信息,期中一個(gè)列顯示“在學(xué)號(hào)后面緊接著姓名”的形式。10計(jì)算列任務(wù)分析:該顯示結(jié)果的中的第一列項(xiàng)不是通常的列名和結(jié)果信息,而是通過(guò)計(jì)算產(chǎn)生的。這里的計(jì)算表達(dá)式為:stuNo+name 。任務(wù)實(shí)施:SELECT stuNo+name ,sex ,className FROM tb_student114.2.2 步驟二:選擇行的查詢(xún)1. 滿(mǎn)足條件的行查詢(xún)滿(mǎn)足條件的記錄可以通過(guò)在WHERE子句后面構(gòu)造條件表達(dá)式來(lái)實(shí)現(xiàn)。12(1)比較條件查詢(xún)?nèi)蝿?wù)描述:查詢(xún)籍貫是“廣東深圳”的學(xué)生信息。13(2)指定范圍查詢(xún)?nèi)蝿?wù)描述:查詢(xún)成績(jī)優(yōu)秀(80100分)的信息
5、。任務(wù)分析:成績(jī)?cè)?0100之間的查詢(xún)條件可以使用BETWEENAND,即在某一范圍。14(3)指定列表查詢(xún)?nèi)蝿?wù)描述:查詢(xún)01軟件-1、02文秘-1和03文秘-1三個(gè)班的學(xué)生信息。任務(wù)分析:IN謂詞用于查找屬于指定列表中的記錄。15(4)模糊查詢(xún)?nèi)蝿?wù)描述:查詢(xún)學(xué)校所有01級(jí)的班級(jí)信息。任務(wù)分析:所有01級(jí)的班級(jí)的共同特點(diǎn)是className都是以“01”開(kāi)頭,因此查詢(xún)條件為className的內(nèi)容為“01”開(kāi)頭,其后為任意字符即可。謂詞LIKE可以用來(lái)進(jìn)行字符串的匹配。其一般語(yǔ)句格式為:NOT LIKE 可以是一個(gè)完整的字符串,也可以含有“%”和“_”等通配符。16(5)空值判斷查詢(xún)?nèi)蝿?wù)描述:
6、由于學(xué)生還沒(méi)有參加某個(gè)科目的考試,因此該學(xué)生的該科目在成績(jī)表(tb_stuToCourse)的對(duì)應(yīng)字段中還是空值,查詢(xún)成績(jī)表中分?jǐn)?shù)為空的記錄,如圖所示。任務(wù)分析:在SQL語(yǔ)句中,判斷是否空值不能使用等號(hào)(=),而應(yīng)該使用“IS”。IS NULL表示空,IS NOT NULL 表示非空。17(6)查詢(xún)條件中的邏輯運(yùn)算任務(wù)描述:查詢(xún)02文秘-1班的所有女同學(xué)的信息。任務(wù)分析:本任務(wù)的查詢(xún)條件中實(shí)際包含兩個(gè)條件:className = 02文秘-1班 和 sex = 女,可以使用邏輯運(yùn)算符將這兩個(gè)條件連接起來(lái)。這里的兩個(gè)條件是“并且”的邏輯關(guān)系,可使用“AND”運(yùn)算符。182. 消除重復(fù)的行任務(wù)描述
7、:通過(guò)班級(jí)表(tb_class)查詢(xún)總共有幾個(gè)系部,每個(gè)系部只需要顯示一次。任務(wù)分析:查詢(xún)的結(jié)果中包含了重復(fù)的數(shù)據(jù),如果需要去除重復(fù)顯示,則可以指定DISTINCT關(guān)鍵字。193. 前N行任務(wù)描述:查看學(xué)生表中前3個(gè)學(xué)生的信息。任務(wù)分析:在SELECT語(yǔ)句中,可以使用TOP子句限制查詢(xún)結(jié)果的行數(shù),一般形式為:TOP nPERCENTn指定返回的行數(shù),如果有PERCENT指定返回的結(jié)果行的百分比。204.2.3 步驟三:查詢(xún)結(jié)果排序任務(wù)描述:按照由小到大的順序,查詢(xún)學(xué)生的成績(jī)信息。任務(wù)分析:ORDER BY子句用于對(duì)查詢(xún)結(jié)果進(jìn)行排序。它可以按照一個(gè)或多個(gè)字段對(duì)查詢(xún)結(jié)果進(jìn)行升序(ASC)或降序(D
8、ESC)排序。其中,升序(ASC)為默認(rèn)設(shè)置。如果有WHERE子句,ORDER BY 子句必須放在WHERE子句后面。21任務(wù)拓展任務(wù)描述:查詢(xún)分?jǐn)?shù)最高的5個(gè)成績(jī)信息224.2.4 步驟四:查詢(xún)結(jié)果分組統(tǒng)計(jì)1、GROUP BY子句任務(wù)描述:分別查詢(xún)統(tǒng)計(jì)全校男老師和女老師的人任務(wù)分析:要分別統(tǒng)計(jì)男女老師的人數(shù),首先需要對(duì)老師按照性別分組,然后再分別統(tǒng)計(jì)男老師和女老師的記錄數(shù)。GROUP BY子句進(jìn)行分組,聚合函數(shù)對(duì)記錄組進(jìn)行統(tǒng)計(jì)。23查詢(xún)結(jié)果分組統(tǒng)計(jì)2、HAVING子句任務(wù)描述:查詢(xún)平均成績(jī)?cè)?5分以上的各個(gè)科目的平均成績(jī)?nèi)蝿?wù)分析:平均成績(jī)75的條件子句“AVG(score)75”必須寫(xiě)在HAV
9、ING子句中。24提示同樣屬于查詢(xún)條件,WHERE子句設(shè)置的查詢(xún)條件在GROUP BY子句之前發(fā)生,而HAVING子句是在分組統(tǒng)計(jì)之后,對(duì)統(tǒng)計(jì)的結(jié)果進(jìn)行條件篩選,所以WHERE子句寫(xiě)在GROUP BY 子句之前,而HAVING子句寫(xiě)在GROUP BY子句之后。HAVING子句可以包含聚合函數(shù),而WHERE子句不能包含聚合函數(shù)。254.2.5 步驟五:連接查詢(xún)?nèi)蝿?wù)描述:學(xué)生處的李老師和教務(wù)處的劉老師經(jīng)常要查詢(xún)班級(jí)的基本情況和學(xué)生的課程成績(jī),通過(guò)下述5個(gè)子任務(wù)完成相關(guān)的信息查詢(xún)與統(tǒng)計(jì)。1、查詢(xún)學(xué)院所有班級(jí)的基本情況,要求顯示班級(jí)名稱(chēng)和班主任的姓名;2、查詢(xún)顯示所有學(xué)生信息及其所在的班級(jí)和系部名稱(chēng);
10、3、查詢(xún)某學(xué)生(如學(xué)號(hào)為200100001)的課程成績(jī),以及課程的編號(hào)、名稱(chēng)和學(xué)分信息;4、查詢(xún)某個(gè)班級(jí)(如01軟件-1班)的所有學(xué)生考試成績(jī)。5、查詢(xún)某個(gè)班級(jí)(如01軟件-1班)的所有學(xué)生考試成績(jī)(顯示學(xué)號(hào)、姓名、班級(jí)、學(xué)期、課程代碼和分?jǐn)?shù)),如果學(xué)生的學(xué)號(hào)只在班級(jí)中出現(xiàn),沒(méi)有在成績(jī)表中出現(xiàn),則該學(xué)生信息部分依舊顯示,但其考試信息部分全部顯示為NULL。每個(gè)查詢(xún)所需要的數(shù)據(jù)并不是都在同一個(gè)表中26連接查詢(xún) 相關(guān)知識(shí)連接查詢(xún)主要包括:交叉連接、內(nèi)連接和外連接三種情況。交叉連接。交叉連接查詢(xún)是指返回兩個(gè)表的笛卡爾積作為查詢(xún)結(jié)果的連接方式,一般形式為:SELECT 字段列表 FROM 表1 CRO
11、SS JOIN 表2272、內(nèi)連接內(nèi)連接是用比較運(yùn)算符比較要連接字段的值,通過(guò)對(duì)兩個(gè)表之間共性的字段進(jìn)行等值比較,實(shí)現(xiàn)兩個(gè)表之間的連接操作,而兩個(gè)表中任何不匹配的數(shù)據(jù)行將不會(huì)出現(xiàn)在結(jié)果集中。一般形式為:SELECT 字段列表 FROM 表1 INNER JOIN 表2 ON 表1.共性字段 = 表2.共性字段 或者SELECT 字段列表 FROM 表1, 表2 WHERE 表1.共性字段 = 表2.共性字段 283、外連接在內(nèi)連接操作中,只有滿(mǎn)足連接條件的記錄才能出現(xiàn)在結(jié)果集中,但是如果想顯示一個(gè)表中與另一個(gè)表不匹配的行,就需要借助于外連接來(lái)實(shí)現(xiàn)。左外連接右外連接全外連接29任務(wù)實(shí)施1. 查詢(xún)學(xué)院所有班級(jí)的基本情況,要求顯示班級(jí)名稱(chēng)和班主任的姓名。30任務(wù)實(shí)施(續(xù))2. 查詢(xún)顯示所有學(xué)生信息及其所在的班級(jí)和系部名稱(chēng)。31任務(wù)實(shí)施(續(xù))3. 查詢(xún)某學(xué)生(如學(xué)號(hào)為200100001)的課程成績(jī),以及課程的編號(hào)、名稱(chēng)和學(xué)分信息。32任務(wù)實(shí)施(續(xù))4. 查詢(xún)某個(gè)班級(jí)(如01軟件-1班)的所有學(xué)生課程成績(jī)。33任務(wù)實(shí)施(續(xù))5. 查詢(xún)某個(gè)班級(jí)(如01軟件-1班)的所有學(xué)生考試成績(jī)(顯示學(xué)號(hào)、姓名、班級(jí)、學(xué)期、課程代碼和分?jǐn)?shù)),如果學(xué)生的學(xué)號(hào)只在班級(jí)中出現(xiàn),沒(méi)有在成績(jī)表中出現(xiàn),則該學(xué)生信
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年雅安職業(yè)技術(shù)學(xué)院馬克思主義基本原理概論期末考試模擬題及答案解析(奪冠)
- 2026年語(yǔ)言文學(xué)知識(shí)競(jìng)賽試題及答案
- 2026年四川華新現(xiàn)代職業(yè)學(xué)院?jiǎn)握新殬I(yè)傾向性測(cè)試題庫(kù)帶答案解析
- 2026年時(shí)事政治測(cè)試題庫(kù)附答案【考試直接用】
- 公司培訓(xùn)積分公布制度
- 電信培訓(xùn)教室制度
- 財(cái)務(wù)員工培訓(xùn)管理制度
- x光機(jī)房規(guī)范制度
- 婦聯(lián)培訓(xùn)室工作制度
- 臨時(shí)工崗前培訓(xùn)制度
- 2026年藥店培訓(xùn)計(jì)劃試題及答案
- 2026春招:中國(guó)煙草真題及答案
- 六年級(jí)寒假家長(zhǎng)會(huì)課件
- 物流鐵路專(zhuān)用線(xiàn)工程節(jié)能評(píng)估報(bào)告
- 2026河南省氣象部門(mén)招聘應(yīng)屆高校畢業(yè)生14人(第2號(hào))參考題庫(kù)附答案
- 2026天津市南開(kāi)區(qū)衛(wèi)生健康系統(tǒng)招聘事業(yè)單位60人(含高層次人才)備考核心試題附答案解析
- 2025江蘇無(wú)錫市宜興市部分機(jī)關(guān)事業(yè)單位招聘編外人員40人(A類(lèi))備考筆試試題及答案解析
- 卵巢過(guò)度刺激征課件
- 漢服行業(yè)市場(chǎng)壁壘分析報(bào)告
- 重瞼手術(shù)知情同意書(shū)
- 2026華潤(rùn)燃?xì)庑@招聘(公共基礎(chǔ)知識(shí))綜合能力測(cè)試題附答案解析
評(píng)論
0/150
提交評(píng)論