版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
第8章查詢和視圖
本章要點查詢的創(chuàng)建與使用方法關(guān)系數(shù)據(jù)庫查詢語言的使用視圖的創(chuàng)建與使用方法查詢與視圖的聯(lián)系與區(qū)別思考題8.1.1查詢的設(shè)計過程在創(chuàng)建查詢時,通常可以遵循以下六個步驟來創(chuàng)建查詢。(1)用“查詢向?qū)А被颉安樵冊O(shè)計器”創(chuàng)建查詢。(2)選擇在查詢結(jié)果中需要的字段。(3)設(shè)置查詢記錄的條件。(4)設(shè)置排序及分組條件來組織查詢結(jié)果。(5)選擇查詢輸出類別,可以是報表、表文件、圖表、瀏覽窗口和表文件等等。(6)運行此查詢。8.1數(shù)據(jù)查詢1.利用“查詢向?qū)А眲?chuàng)建查詢利用“查詢向?qū)А眲?chuàng)建查詢的步驟如下:(1)進入“查詢向?qū)А边M入“查詢向?qū)А笨捎孟旅?種方法:①選擇【工具】|【向?qū)А縷【查詢】命令。②選擇【文件】|【新建】命令,進入“新建”對話框,選擇“查詢”單選按鈕,單擊“向?qū)А卑粹o。③在“項目管理器”窗口中,選擇“數(shù)據(jù)”選項卡,選中“查詢”,單擊“新建”按鈕,出現(xiàn)“新建查詢”對話框,單擊“查詢向?qū)А卑粹o。(2)選擇查詢結(jié)果中需要的字段8.1.2查詢的創(chuàng)建與保存(3)設(shè)置查詢條件(4)設(shè)置排序字段(5)設(shè)置記錄輸出范圍(6)保存查詢2.查詢設(shè)計器進入“查詢設(shè)計器”窗口有二種方法,(1)選擇【文件】│【新建】命令,進入“新建”對話框,選擇“查詢”單選按鈕,單擊“新建”按鈕;(2)在“項目管理器”窗口中,選擇“數(shù)據(jù)”選項卡,選中“查詢”文件類型,單擊“新建”按鈕,出現(xiàn)“新建查詢”對話框,單擊“新建查詢”按鈕。
3.查詢設(shè)計器工具欄“查詢設(shè)計器工具欄”各按鈕的功能如下:按鈕:添加數(shù)據(jù)庫表。按鈕:移去數(shù)據(jù)庫表。按鈕:添加數(shù)據(jù)庫表間的聯(lián)接。按鈕:顯示SQL窗口。按鈕:最大化上部分窗口。按鈕:確定查詢?nèi)ハ颉?.使用查詢設(shè)計器創(chuàng)建查詢使用“查詢設(shè)計器”創(chuàng)建前面“查詢向?qū)А眲?chuàng)建查詢例子,具體步驟如下:(1)進入“查詢設(shè)計器”窗口,添加stud表,如圖所示。(2)選擇查詢需要的字段(3)設(shè)置查詢條件(4)保存查詢1.查詢的運行運行查詢的方法有以下5種:①在“查詢設(shè)計器”窗口中,選擇【查詢】|【運行查詢】命令。②在“查詢設(shè)計器”窗口中,右擊“查詢設(shè)計器”窗口,選擇快捷菜單中的【運行查詢】命令。③選擇【程序】|【運行】命令。彈出“運行”對話框,在對話框中,選擇所要運行的查詢文件,單擊“運行”按鈕。④在“項目管理器”窗口中,選擇要運行的查詢文件,單擊右邊的“運行”按鈕。⑤在“命令”窗口中,鍵入DO<查詢文件名>。例如,DO查詢1.qpr。8.1.3查詢的運行與修改2.查詢的修改修改可以用以下3種方法:①在“項目管理器”窗口中,選擇要修改的查詢文件,單擊右邊的“修改”按鈕,進入“查詢設(shè)計器”窗口中修改。②選擇【文件】|【打開】命令,在“打開”對話框中,選擇所要修改的查詢文件,單擊“確定”按鈕,進入“查詢設(shè)計器”窗口中修改。③在命令窗口中,鍵入MODIFYQUERY<查詢文件名>。3.查詢?nèi)ハ虻脑O(shè)置單擊“查詢設(shè)計器”工具欄中的“查詢?nèi)ハ颉卑粹o或在系統(tǒng)菜單中單擊【查詢】|【查詢?nèi)ハ颉棵?,彈出“查詢?nèi)ハ颉睂υ捒?,如圖所示。其中共包含7個查詢?nèi)ハ?,各項的含義見表5-1。1.多表查詢的創(chuàng)建2.交叉表查詢的創(chuàng)建交叉表是類似電子表格形式來表現(xiàn)二維分析數(shù)據(jù)的一種表。例如,在學(xué)生成績總表中,是由學(xué)生“姓名”和本學(xué)期的各門“課程名稱”構(gòu)成了一個二維表,此表的交叉點為“成績”的分值。8.1.4復(fù)雜(多表)查詢的設(shè)計8.2關(guān)系數(shù)據(jù)庫標(biāo)準(zhǔn)語言SQLSQL語言的基本概念
SQL語言支持關(guān)系型數(shù)據(jù)庫的三級模式結(jié)構(gòu)。其中外模式對應(yīng)于視圖(View)和部分基本表(BaseTable),模式對應(yīng)于基本表,內(nèi)模式對應(yīng)于存儲文件。基本表是本身獨立存在的表,在SQL語言中一個關(guān)系對應(yīng)一個表。一些基本表對應(yīng)一個存儲文件,一個表可以帶若干索引,索引存放在存儲文件中。存儲文件的邏輯結(jié)構(gòu)組成了關(guān)系型數(shù)據(jù)庫的內(nèi)模式。而存儲文件的物理文件結(jié)構(gòu)是任意的。
1.綜合統(tǒng)一
SQL語言集數(shù)據(jù)定義(DDL)、數(shù)據(jù)操縱(DML)、數(shù)據(jù)管理(DCL)的功能于一體,語言風(fēng)格統(tǒng)一,可以獨立完成數(shù)據(jù)庫的全部操作,包括定義關(guān)系模式、錄入數(shù)據(jù)及建立數(shù)據(jù)庫、查詢、更新、維護數(shù)據(jù)、數(shù)據(jù)庫的重新構(gòu)造、數(shù)據(jù)庫安全性等一系列操作的要求,為數(shù)據(jù)庫應(yīng)用系統(tǒng)開發(fā)者提供了良好的環(huán)境。2.高度非過程化3.面向集合的操作方式4.以同一種語法結(jié)構(gòu)提供兩種使用方式5.語言簡潔,易學(xué)易用SQL語言的特點8.2.1SQL中的數(shù)據(jù)查詢語句數(shù)據(jù)庫中的數(shù)據(jù)很多時侯是為了查詢的,因此,數(shù)據(jù)查詢是數(shù)據(jù)庫的核心操作。而在SQL語言中,查詢語言中有一條查詢命令,即SELECT語句。1基本查詢語句【格式】SELECT[ALL|DISTINCT]<字段列表>FROM<表>【功能】無條件查詢?!菊f明】ALL:表示顯示全部查詢記錄,包括重復(fù)記錄。
DISTINCT:表示顯示無重復(fù)結(jié)果的記錄。
【例8-1】顯示STUD(學(xué)生信息數(shù)據(jù)表)中的所有記錄。SELECT*;FROMSTUD命令中的*表示輸出顯示所有的字段,數(shù)據(jù)來源是STUD表,表中的內(nèi)容以瀏覽方式顯示?!纠?-2】顯示STUD(學(xué)生信息數(shù)據(jù)表)中的所有的學(xué)號及與之對應(yīng)的姓名,同時能去除重名。SELECTDISTINCT學(xué)號,姓名
;FROMSTUD【例8-3】顯示SC(課程成績表)中的所有記錄,并將成績一項乘以0.7。SELECT學(xué)號,課程號,成績*0.7AS成績
FROMSC2帶條件(WHERE)的查詢語句【格式】SELECT[ALL|DISTINCT]<字段列表>FROM<表>[WHERE<條件表達式>]【功能】從一個表中查詢滿足條件的數(shù)據(jù)?!菊f明】<條件表達式>由一系列用AND或OR連接的條件表達式組成,條件表達式的格式可以是以下幾種:(1)<字段名1><關(guān)系運算符><字段名2>。(2)<字段名><關(guān)系運算符><表達式>。(3)<字段名><關(guān)系運算符>ALL(<子查詢>)(4)<字段名><關(guān)系運算符>ANY|SOME(<子查詢>)(5)<字段名>[NOT]BETWEEN<起始值>AND<終止值>(6)[NOT]EXISTS(<子查詢>)(7)<字段名>[NOT]IN<值表>(8)<字段名>[NOT]IN(<子查詢>)(9)<字段名>[NOT]LINK<字符表達式>SQL支持的關(guān)系運算符如下:=、<>、!=、#、==、>、>=、<、<=?!纠?-4】顯示STUD表中所有男生記錄的學(xué)號,姓名和性別字段值。SELECT學(xué)號,姓名,性別
;FROMSTUDWHERE性別="男"【例8-5】顯示STUD表中出生日期在85年之間的學(xué)生的學(xué)號,姓名,出生日期。SELECT學(xué)號,姓名,出生日期
;FROMSTUD;WHERE出生日期
BETWEEN{01/01/85}AND{12/31/86}【例8-6】顯示STUD表中姓李的學(xué)生的學(xué)號,姓名,出生日期。SELECT學(xué)號,姓名,出生日期;FROMSTUD;WHERE姓名
LIKE“李%”2.SQL的復(fù)雜查詢(1)連接查詢
【說明】在一個數(shù)據(jù)庫中的多個表之間一般都存在著某些聯(lián)系,在一個查詢語句中同時涉及到兩個或兩個以上的表時,這種查詢稱之為連接查詢(也稱為多表查詢)。在多表之間查詢必須處理表與表之間的連接關(guān)系。
SELECT[ALL|DISTINCT]<字段列表>FROM<表1>[,表2…..]WHERE<條件表達式>【例8-7】查詢并顯示各個學(xué)生的學(xué)號,姓名,各科成績及課程名。SELECTa.學(xué)號,a.姓名,b.課程名,c.成績
;FROMSTUDa,COURSEb,SCc;WHEREa.學(xué)號=c.學(xué)號.AND.b.課程號=c.課程號或SELECT學(xué)號,a.姓名,b.課程名,c.成績;FROMSTUD,COURSE,SC;WHERESTUD.學(xué)號=SC.學(xué)號.AND.COURSE.課程號=SC.課程號【例8-8】查詢并顯示各個學(xué)生所學(xué)課程的情況。SELECTSTUD.學(xué)號,STUD.姓名,COURSE.課程名
;FROMSTUD,SC,COURSE;WHERESTUD.學(xué)號=SC.學(xué)號.AND.SC.課程號=COURSE.課程號(2)連接問題在SQL語句中,在FROM子句中提供了一種稱之為連接的子句,連接分為內(nèi)連接和外連接,外連接又可分為左外連接、右外連接和全外連接。1)內(nèi)連接內(nèi)連接是指包括符合條件的每個表的記錄,也稱之為全記錄操作。而上面兩個例子就是內(nèi)連接。【例8-9】查詢并顯示各個學(xué)生的學(xué)號,所學(xué)課程及課程成績。SELECTSC.學(xué)號,COURSE.課程名,SC.成績
;FROMSC,COURSE;WHERESC.課程號=COURSE.課程號如果采用內(nèi)連接方式,則命令如下:SELECTa.學(xué)號,b.課程名,成績
;FROMSCaINNERJOINCOURSEbONa.課程號=b.課程號將會得到完全相同的結(jié)果。2)外連接外連接是指把兩個表分為左右兩個表。右外連接是指連接滿足條件右側(cè)表的全部記錄。左外連接是指連接滿足條件左側(cè)表的全部記錄。全外連接是指連接滿足條件表的全部記錄。(3)嵌套查詢在SQL語句中,一個SELECT-FROM-WHERE語句稱為一個查詢塊。將一個查詢塊嵌套在另一個查詢塊的WHERE子句或HAVING短語的條件中的查詢稱為嵌套查詢或子查詢?!纠?-10】顯示“李寧”所在班級的學(xué)生名單。SELECT學(xué)號,姓名,班級名
;FROMSTUD;WHERE班級名=(SELECT班級名
FROMSTUDWHERE姓名="李寧")(4)分組與計算查詢【格式】SELECT[ALL|DISTINCT]<字段列表>FROM<表>[WHERE<條件>[GROUPBY<分類字段列表>…][HAVING<過濾條件>][ORDERBY<排序項>[ASC|DESC]
【功能】包括有排序、函數(shù)運算和謂詞演算【例8-11】按出生日期降序顯示STUD表中的學(xué)號,姓名,出生日期。SELECT學(xué)號,姓名,出生日期
;FROMSTUD;ORDERBY出生日期
DESC【例8-12】按成績升序顯示SC表中的學(xué)號,課程號,成績。SELECT學(xué)號,課程號,成績
;FROMSC;ORDERBY成績【例8-13】按班級分類顯示學(xué)生的姓名,課程名,成績,同一班級按分數(shù)排序。SELECTa.姓名,a.班級名,c.課程名,b.成績
;FROMSTUDa,SCb,COURSEc;WHEREa.學(xué)號=b.學(xué)號
ANDb.課程號=c.課程號;ORDERBYa.班級名,b.成績;【例8-14】顯示成績在80至90之間的學(xué)號,姓名,課程名和成績。SELECTa.姓名,c.課程名,b.成績
FROMSTUDa,SCb,COURSEcWHEREa.學(xué)號=b.學(xué)號
ANDb.課程號=c.課程號
ANDb.成績
BETWEEN80AND90【例8-15】顯示計算機系學(xué)生的成績。SELECTa.姓名,a.系別代號,c.課程名,b.成績
;FROMSTUDa,SCb,COURSEc;WHEREa.學(xué)號=b.學(xué)號
ANDb.課程號=c.課程號
ANDa.系別代號=“01”【例8-16】顯示各班總?cè)藬?shù)。SELECT班級名,COUNT(班級名)
AS總?cè)藬?shù)
;FROMSTUD;GROUPBY班級名【例8-17】顯示計算機系的學(xué)生及所有男學(xué)生。SELECT學(xué)號,姓名,系別代號,性別
;FROMSTUD;WHERE系別代號="01"UNION;SELECT學(xué)號,姓名,系別代號,性別
;FROMSTUD;WHERE性別="男"【例8-18】顯示選修了英語或數(shù)學(xué)科目的學(xué)生學(xué)號。SELECT學(xué)號,課程號
FROMSC;WHERE課程號=“01”UNION;SELECT學(xué)號,課程號
;FROMSC;WHERE課程號=“02”【例8-19】顯示計算機系男生的名單。SELECT學(xué)號,姓名,系別代號,性別
;FROMSTUD;WHERE系別代號=“01”AND性別=“男”【例8-20】顯示既選修了01課程又選修了02課程學(xué)生的名單。SELECT學(xué)號
;FROMSC;WHERE課程號=“01”AND學(xué)號
IN;(SELECT學(xué)號
FROMSCWHERE課程號=“02”)【例8-21】顯示計算機系非男生的名單。SELECT學(xué)號,姓名,系別代號,性別
;FROMSTUD;WHERE系別代號=“01”AND性別=“女”【例8-22】顯示選修了01課程而沒有選修02課程學(xué)生的名單。SELECT學(xué)號
;FROMSC;WHERE課程號=“01”AND學(xué)號
NOTIN;(SELECT學(xué)號
FROMSCWHERE課程號=“02”)(5)查詢?nèi)ハ蚰J情況下,查詢輸出到一個瀏覽窗口,用戶在“SELECT”語句中可使用[INTO<目標(biāo)>|TOFILE<文件名>|TOSCREEN|TOPRINTER]子句選擇查詢?nèi)ハ颍篒NTOARRAY數(shù)組名:將查詢結(jié)果保存到一個數(shù)組中。CURSOR<臨時表名>:將查詢結(jié)果保存到一個臨時表中。DBF|TABLE<表名>:將查詢結(jié)果保存到一個永久表中。TOFILE<文件名>[ADDITIVE]:將查詢結(jié)果保存到文本文件中。如果帶“ADDITIVE”關(guān)鍵字,查詢結(jié)果以追加方式添加到<文件名>指定的文件,否則,以新建或覆蓋方式添加到<文件名>指定的文件。TOSCREEN:將查詢結(jié)果保在屏幕上顯示。TOPRINTER:將查詢結(jié)果送打印機打印。8.3.1視圖簡介視圖是一個定制的虛擬邏輯表,視圖中只存放相應(yīng)的數(shù)據(jù)邏輯關(guān)系,并不保存表的記錄內(nèi)容,但可以在視圖中改變記錄的值,然后將更新記錄返回到源表。視圖與查詢在功能上有許多相似之處,但又有各自特點,主要區(qū)別如下:功能不同:視圖可以更新字段內(nèi)容并返回源表,而查詢文件中的記錄數(shù)據(jù)不能被修改。從屬不同:視圖不是一個獨立的文件而從屬于某一個數(shù)據(jù)庫。查詢是一個獨立的文件,它不從屬于某一個數(shù)據(jù)庫。8.
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 《社保及公積金培訓(xùn)》課件
- 2025年商業(yè)投資擔(dān)保協(xié)議
- 2025年兒童學(xué)習(xí)培訓(xùn)協(xié)議
- 2025年婚姻保險合同
- 二零二五年度木結(jié)構(gòu)建筑木工分包合同示范文本4篇
- 2025版學(xué)校體育設(shè)施租賃與運營管理協(xié)議2篇
- 二零二五年度公共資源交易財務(wù)監(jiān)管合同3篇
- 二手房租借轉(zhuǎn)讓合同范本(2024年修訂版)一
- 二零二五年度2025年度新型婚姻解除離婚協(xié)議書模板
- 二零二五年度2025年度混凝土路面施工人員培訓(xùn)合同
- 2025貴州貴陽市屬事業(yè)單位招聘筆試和高頻重點提升(共500題)附帶答案詳解
- 2024年廣東省公務(wù)員錄用考試《行測》試題及答案解析
- 結(jié)構(gòu)力學(xué)本構(gòu)模型:斷裂力學(xué)模型:斷裂力學(xué)實驗技術(shù)教程
- PDCA提高臥床患者踝泵運動的執(zhí)行率
- 黑色素的合成與美白產(chǎn)品的研究進展
- 金蓉顆粒-臨床用藥解讀
- 法治副校長專題培訓(xùn)課件
- 《幼兒園健康》課件精1
- 汽車、電動車電池火災(zāi)應(yīng)對
- 中醫(yī)藥適宜培訓(xùn)-刮痧療法教學(xué)課件
- 免疫組化he染色fishish
評論
0/150
提交評論