【文章內(nèi)容簡介】
y sno having COUNT(*)2 order by count(o)desc實驗3 數(shù)據(jù)庫的多表查詢一、實驗?zāi)康睦^續(xù)熟練SQLSELECT語句的使用;理解多表查詢的概念;掌握多表連接查詢中各個子句的用法,特別要比較內(nèi)連接和外連接的結(jié)果。掌握非相關(guān)子查詢、相關(guān)子查詢的用法,理解它們的執(zhí)行過程;學(xué)會在SQL Server中用Exists實現(xiàn)交運(yùn)算,用Not Exists實現(xiàn)差運(yùn)算。二、實驗環(huán)境Windows XP操作系統(tǒng),SQL Server 2005軟件。三、實驗課時2課時。四、實驗內(nèi)容(一)、在已建立的數(shù)據(jù)庫和數(shù)據(jù)表的基礎(chǔ)上,用Select語句的連接查詢完成下列操作。查詢每個學(xué)生的基本信息及其選課情況。查詢選修“101”課程的學(xué)生學(xué)號、姓名和成績。查詢與“李平”在同一個系學(xué)習(xí)的學(xué)生記錄。查詢與“李平”年齡相同的學(xué)生記錄。查詢選修課程名為“數(shù)據(jù)庫原理”的選課記錄。查詢選修課程名為“數(shù)據(jù)庫原理”的學(xué)生記錄。查詢選修“101”課程且成績≥90的學(xué)號、姓名和成績。查詢“李平”的所有選課記錄。查詢數(shù)學(xué)系學(xué)生選修的課程號,要求結(jié)果中去掉重復(fù)記錄。查詢計算機(jī)系選修課程數(shù)≥2的學(xué)號、姓名及平均成績,查詢結(jié)果按平均成績降序。1查詢每個學(xué)生的學(xué)號、選修課程號、課程名及成績。1查詢所有學(xué)生的選修情況(包括選課和未選課的學(xué)生),要求顯示學(xué)號、姓名、課程號和成績。(二)、在已建立的數(shù)據(jù)庫和數(shù)據(jù)表的基礎(chǔ)上,用Select語句的嵌套查詢完成下列操作。查詢選修“101”課程且成績≥90的學(xué)號、姓名。查詢“李平”的所有選課記錄。查詢與“李平”在同一個系學(xué)習(xí)的學(xué)生記錄。查詢與“李平”年齡相同的學(xué)生記錄。查詢選修課程名為“數(shù)據(jù)庫原理”的選課記錄,輸出結(jié)果包括學(xué)號和成績。查詢選修課程名為“數(shù)據(jù)庫原理”的學(xué)生記錄,輸出結(jié)果包括學(xué)號、姓名和所在系。查詢學(xué)號為“01003”學(xué)生的選修課程號和課程名。查詢沒有選修“101”課程的學(xué)生學(xué)號和姓名。查詢選修“101”課程或“102”課程的學(xué)生姓名。查詢選修“101”課程和“102”課程的學(xué)生學(xué)號。1查詢選修“101”課程但沒選修“102”課程的學(xué)生學(xué)號。1查詢沒有選修任何課程的學(xué)生記錄,輸出結(jié)果包括學(xué)號、姓名和所在系。1查詢數(shù)學(xué)系學(xué)生選修的課程號,要求結(jié)果中去掉重復(fù)記錄。1查詢選修課程至少包含“01003”選修課程的學(xué)生學(xué)號。實驗4 數(shù)據(jù)庫更新、視圖定義及使用一、實驗?zāi)康恼莆誌nsert、Update、Delete語句的使用;對于Insert語句,要求理解默認(rèn)值約束、空值約束在插入記錄時所起的作用。理解視圖的概念,掌握Create View、Drop View語句的使用;掌握基于視圖的查詢語句的使用。二、實驗環(huán)境Windows XP操作系統(tǒng),SQL Server 2005軟件。三、實驗課時2課時。四、實驗內(nèi)容(一)、在已建立的數(shù)據(jù)庫和數(shù)據(jù)表的基礎(chǔ)上,向數(shù)據(jù)庫中添加一個臨時表ST,其結(jié)構(gòu)比Student表結(jié)構(gòu)多一個score字段。用Insert語句向臨時表輸入數(shù)據(jù),輸入有誤時用Update語句進(jìn)行修改。再用三個更新語句完成下列操作。向Student表添加若干新記錄,內(nèi)容自定。(觀察已定義的表的約束情況)向SC表添加新記錄,內(nèi)容自定,不低于10條(注意不能違反參照完整性)。為臨時表ST添加記錄。把Student表的所有行一次性地加到臨時表ST中。在ST表中把所有學(xué)生的成績加2分。在ST表中把所有學(xué)生的年齡增加1。在ST表中把“李平”的所在系改為“計算機(jī)”。在ST表中將選修課程“數(shù)據(jù)庫原理”的學(xué)生成績加2分。在SC表中刪除所有成績?yōu)榭罩档倪x修記錄。刪除計算機(jī)系選修成績不及格的選課記錄。(二)、在已建立的數(shù)據(jù)庫和數(shù)據(jù)表的基礎(chǔ)上,完成下列操作。建立數(shù)學(xué)系學(xué)生的視圖MAST。建立計算機(jī)系選修課程名為“數(shù)據(jù)庫原理”的學(xué)生視圖,視圖名:CSTVIEW,該視圖中應(yīng)包括屬性列:學(xué)號、姓名、成績。創(chuàng)建一個名為STSUMVIEW的視圖,包括所有學(xué)生的學(xué)號和總成績。建立學(xué)生選課視圖SCVIEW,包括所有學(xué)生的學(xué)號、姓名、課程號、課程名和成績。通過MAST視圖查詢學(xué)生基本信息。通過SCVIEW查詢成績大于90分的學(xué)生的學(xué)號和成績。查詢計算機(jī)系選修課程名為“數(shù)據(jù)庫原理”并且成績大于85分的學(xué)生的學(xué)號和成績。通過MAST視圖將學(xué)號為“01008”學(xué)生的年齡修改為21歲。通過MAST視圖將學(xué)號為“01009”學(xué)生所在系改為“經(jīng)濟(jì)”,是否能成功執(zhí)行?若不能成功請說明理由;若修改成功,請再次通過MAST視圖查詢學(xué)生基本信息,是否能查詢到該生?若不能查詢請說明理由。通過SCVIEW視圖將學(xué)號為“01004”學(xué)生的總成績修改為380分,是否能成功執(zhí)行?若不能成功請說明理由。實驗5 數(shù)據(jù)庫的安全與保護(hù)一、實驗?zāi)康睦斫釹QL Server的用戶與權(quán)限管理機(jī)制,掌握用對象資源管理器創(chuàng)建服務(wù)器登錄帳號,并同時建立用戶。掌握如何為給定的用戶分配權(quán)限。二、實驗環(huán)境Windows XP操作系統(tǒng),SQL Server 2005軟件。三、實驗課時2課時。四、實驗內(nèi)容用戶與權(quán)限管理(1)打開“SQL Server Management Studio”窗口,使用對象資源管理器創(chuàng)建兩個服務(wù)器登錄帳號Test1和Test2,并在“sample_st”數(shù)據(jù)庫中創(chuàng)建兩個對應(yīng)的同名用戶。設(shè)置Test1用戶和Test2用戶的默認(rèn)架構(gòu)為guest。(2)使用Test1身份登錄,并為Test2分配創(chuàng)建數(shù)據(jù)表的權(quán)限;用Test2身份登錄來驗證權(quán)限分配成功。(3)使用Test1身份登錄,收回剛剛分配給Test2的創(chuàng)建數(shù)據(jù)表的權(quán)限;用Test2身份登錄來驗證權(quán)限回收成功。五、實驗步驟使用對象資源管理器創(chuàng)建兩個服務(wù)器登錄帳號。以系統(tǒng)管理員身份登錄SQL Server。打開“SQL Server Management Studio”窗口,在對象資源管理器列表中,打開展開“安全性”文件夾,選擇“登錄名”圖標(biāo),單擊鼠標(biāo)右鍵,在彈出的菜單中選擇“新建登錄名”。在打開的對話框中依次建立Test1和Test2,選擇“SQL Server身份驗證”,同時還要輸入密碼,默認(rèn)數(shù)據(jù)庫為“sample_st”。(2)在“用戶映射”中列出了當(dāng)前登錄帳號可以選擇訪問的數(shù)據(jù)庫如“sample_st”,在其左側(cè)的復(fù)選框中打勾,表示當(dāng)前登錄帳號可以訪問對應(yīng)的數(shù)據(jù)庫,默認(rèn)用戶名與登錄帳號相同。(3)單擊“確定”按鈕完成創(chuàng)建。創(chuàng)建新的數(shù)據(jù)庫用戶。在對象資源管理器中選中要訪問操作的數(shù)據(jù)庫,展開“安全性”文件夾,在“用戶”文件夾中查找是否已建立與登錄名Test1和Test2同名的數(shù)據(jù)庫用戶,若已建立,則在屬性中修改其默認(rèn)架構(gòu)為guest;否則右擊鼠標(biāo)在菜單中選擇“新建用戶”選項,出現(xiàn)“數(shù)據(jù)庫用戶新建”對話框,建立相應(yīng)的用戶。最后,在sample_st數(shù)據(jù)庫的“安全性232。架構(gòu)232。guest232。屬性232。權(quán)限”中,為test1和test2用戶分配相應(yīng)權(quán)限。用Grant、Revoke命令實現(xiàn)對用戶的授權(quán)和收權(quán)。用Create命令創(chuàng)建數(shù)據(jù)表驗證授權(quán)和收權(quán)是否成功。以系統(tǒng)管理員身份登錄SQL Server。使用:“GRANT SELECT ON SC TO Test1 WITH GRANT OPTION”命令,再分別以Test1和Test2身份登錄,進(jìn)行授權(quán)及查詢數(shù)據(jù)表,驗證“WITH GRANT OPTION”能否成功執(zhí)行。以系統(tǒng)管理員身份使用“REVOKE”命令回收上述授權(quán)。實驗6 數(shù)據(jù)庫的完整性一、實驗?zāi)康耐ㄟ^實驗掌握數(shù)據(jù)庫完整性概念,掌握利用SQL Server 2005實現(xiàn)數(shù)據(jù)庫完整性的基本方法和步驟。二、實驗環(huán)境Windows XP操作系統(tǒng),SQL Server 2005軟件。三、實驗課時2課時。四、實驗內(nèi)容建立關(guān)系模式。完成教材P164第6題,用SQL語言定義“職工”和“部門”兩個關(guān)系模式: 職工(職工號,姓名,年齡,職務(wù),工資,部門號),職工號為主碼 部門(部門號,名稱,經(jīng)理名,電話), 部門號為主碼 要求在模式中完成以下完整性約束條件的定義:(1)定義每個模式的主碼;(2)定義參照完整性;(3)定義職工年齡不得超過60歲;(4)定義部門名稱必須取值唯一。驗證完整性約束。使用Insert Values語句向兩個表中各插入5~10條記錄,對下列內(nèi)容進(jìn)行驗證。(1)驗證主鍵約束:“職工”和“部門”兩個表中是否能接受主碼值相同的記錄,通過實例驗證。(2)驗證唯一約束:“部門”表中是否能接受名稱相同的兩個不同記錄?為什么?(3)驗證檢查約束:“職工”表中能否接受年齡不滿足條件的記錄?為什么?(4)驗證參照完整性:若“部門”表中不存在部門號為“008”的記錄,是否能在“職工”表中插入部門號為“008”的職工記錄?若刪除“001”部門的所有信息,正確的操作步驟是什么?實驗7 數(shù)據(jù)庫設(shè)計實驗一、實驗?zāi)康耐ㄟ^實驗掌握數(shù)據(jù)庫設(shè)計的基本方法和步驟。二、實驗環(huán)境Windows XP操作系統(tǒng),SQL Server 2005軟件。三、實驗課時2課時。四、實驗內(nèi)容選定實驗題目,為某個單位或部門設(shè)計數(shù)據(jù)庫應(yīng)用系統(tǒng),比如:學(xué)生成績管理、機(jī)房上機(jī)管理、職工檔案管理、商品庫存管理、圖書管理、工資管理等。根據(jù)選定的題目進(jìn)行需求分析,重點分析數(shù)據(jù)需求和功能需求。概念結(jié)構(gòu)設(shè)計:畫出ER圖。邏輯結(jié)構(gòu)設(shè)計:設(shè)計數(shù)據(jù)庫和數(shù)據(jù)表的具體結(jié)構(gòu),指出各表的屬性名稱、數(shù)據(jù)類型;說明各表的主碼及表之間的關(guān)聯(lián)情況;說明本設(shè)計是否已達(dá)到3NF要求。簡要評價系統(tǒng)設(shè)計的優(yōu)點和不足。五、實驗要求提交設(shè)計報告,涵蓋實驗內(nèi)容的全部信息,不低于1000字。提交建立應(yīng)用系統(tǒng)數(shù)據(jù)庫的代碼,所有數(shù)據(jù)表中的記錄總數(shù)不低于50條。(請參照實驗2的附錄建立數(shù)據(jù)庫)實驗8 存儲過程實驗一、實驗?zāi)康耐ㄟ^實驗熟悉使用存儲過程進(jìn)行數(shù)據(jù)庫應(yīng)用程序設(shè)計的方法二、實驗環(huán)境Windows XP操作系統(tǒng),SQL Server 2005軟件。三、實驗課時2課時。四、實驗內(nèi)容對sample_st數(shù)據(jù)庫,編寫存儲過程,完成下面功能統(tǒng)計任意一門課程的平均成績統(tǒng)計所有課程的平均成績統(tǒng)計任意一門課程的成績分布情況,即按照分?jǐn)?shù)段統(tǒng)計人數(shù)(即第三篇:數(shù)據(jù)庫原理實驗指導(dǎo)書《數(shù)據(jù)庫原理實驗指導(dǎo)書》河南科技大學(xué)電子信息工程學(xué)院目錄實驗規(guī)則..................................................................................................................................0 實驗報告要求..........................................................................................................................2 基本實驗方法..........................................................................................................................2 實驗環(huán)境..................................................................................................................................2 實驗一:數(shù)據(jù)定義及更新語句練習(xí)......................................................................................3 實驗二:簡單查詢和連接查詢..............................................................................................5 實驗三:分組查詢和嵌套查詢..............................................................................................7 實驗四:視圖操作和數(shù)據(jù)控制..............................................................................................9 實驗五:觸發(fā)器和存儲過程................................................................................................11 選作題目.........................................................................................