久久99精品久久久久久琪琪,久久人人爽人人爽人人片亞洲,熟妇人妻无码中文字幕,亚洲精品无码久久久久久久

數(shù)據(jù)庫原理實(shí)驗(yàn)五

時(shí)間:2019-05-12 06:49:11下載本文作者:會員上傳
簡介:寫寫幫文庫小編為你整理了多篇相關(guān)的《數(shù)據(jù)庫原理實(shí)驗(yàn)五》,但愿對你工作學(xué)習(xí)有幫助,當(dāng)然你在寫寫幫文庫還可以找到更多《數(shù)據(jù)庫原理實(shí)驗(yàn)五》。

第一篇:數(shù)據(jù)庫原理實(shí)驗(yàn)五

數(shù)據(jù)庫原理及應(yīng)用實(shí)驗(yàn)報(bào)告

實(shí)驗(yàn)名稱:數(shù)據(jù)庫備份與恢復(fù)、數(shù)據(jù)庫的安全性 實(shí)驗(yàn)類型:驗(yàn)證型 實(shí)驗(yàn)環(huán)境:oracle 11g 指導(dǎo)教師:陳 駿 專業(yè)班級:信安班 姓

名: 學(xué)

號:

聯(lián)系電話:*** 電子郵件: 實(shí)驗(yàn)地點(diǎn):東6E501 實(shí) 驗(yàn) 日 期: 2017年5月16日 實(shí)驗(yàn)報(bào)告日期:2017年 5月 18日

成績:__________________________ 實(shí)驗(yàn)五 數(shù)據(jù)庫備份與恢復(fù)

一、實(shí)驗(yàn)?zāi)康?/p>

? ? ? ? ? ? ? ? 了解數(shù)據(jù)庫恢復(fù)技術(shù)的原理

了解oracle各類故障的數(shù)據(jù)恢復(fù)方法 了解oracle的物理備份

掌握oracle數(shù)據(jù)庫邏輯備份方法 掌握oracle數(shù)據(jù)庫恢復(fù)的方法

學(xué)會使用exp備份數(shù)據(jù)庫、使用imp恢復(fù)數(shù)據(jù)庫 了解flashback 的使用

學(xué)會使用PLSQL/developer工具完成導(dǎo)入導(dǎo)出

二、實(shí)驗(yàn)平臺

Oracle 11g

三、實(shí)驗(yàn)步驟、出現(xiàn)的問題及解決方案(不能解決的將問題列出)(1)實(shí)驗(yàn)步驟

1、邏輯備份

(1)導(dǎo)出自己用戶中的“預(yù)約”表在運(yùn)行中輸入:exp 用戶名/密碼@orcl 按照提示進(jìn)行導(dǎo)出

(2)刪除自己用戶中的“預(yù)約”表

1(3)進(jìn)行導(dǎo)入數(shù)據(jù)庫操作,在運(yùn)行中輸入:IMP 用戶名/密碼@orcl按照提示進(jìn)行導(dǎo)入

(4)查詢導(dǎo)入的“預(yù)約”表中的信息。

(5)導(dǎo)出數(shù)據(jù)庫(以全庫方式導(dǎo)出)。必須是DBA才能執(zhí)行完整數(shù)據(jù)庫或表空間導(dǎo)出操作。

2、使用Flashback(1)設(shè)置行可移動SQL>ALTER TABLE 讀者 ENABLE ROW MOVEMENT

(2)在讀者表中添加多條記錄(或者刪除沒有借書的讀者記錄)。

(3)閃回到改變前(TO_ TIMESTAMP函數(shù)完成對非時(shí)間戳類型數(shù)據(jù)的轉(zhuǎn)換)SQL>FLASHBACK TABLE 讀者 TO TIMESTAMP TO_ TIMESTAMP(?.)2

3、使用PLSQL/developer 來完成SQL導(dǎo)出

(1)打開PLSQL/developer,選擇菜單“工具“導(dǎo)出表(2)點(diǎn)擊你要導(dǎo)出的表,然后選擇標(biāo)簽SQL 插入

(3)選中復(fù)選框創(chuàng)建表,瀏覽或者輸入輸出文件,然后點(diǎn)擊導(dǎo)出

(4)在你輸入的目錄下找到你的導(dǎo)出文件(SQL 文件)

(5)依次導(dǎo)出你賬戶下所有用戶自定義表。

(6)刪除自己表空間中的“預(yù)約”表(7)通過“工具“導(dǎo)入表,利用SQL插入導(dǎo)入數(shù)據(jù)庫預(yù)約表。

(8)查詢導(dǎo)入的預(yù)約表,檢查導(dǎo)出是否正確。

4、使用PLSQL/developer 來完成PLSQL/developer方式導(dǎo)出(1)打開PLSQL/developer,選擇菜單“工具“導(dǎo)出表(2)點(diǎn)擊你要導(dǎo)出的表,然后選擇標(biāo)簽PLSQL/developer(3)瀏覽或者輸入輸出文件,然后點(diǎn)擊導(dǎo)出。

4(4)在你輸入的目錄下找到你的導(dǎo)出文件。(5)依次導(dǎo)出你賬戶下所有用戶自定義表。(6)刪除自己表空間中的“預(yù)約”表

(7)通過“工具“導(dǎo)出表,PLSQL/developer方式導(dǎo)入數(shù)據(jù)庫預(yù)約表。

(8)查詢導(dǎo)入的預(yù)約表,檢查導(dǎo)出是否正確。

(2)問題及解決方案

-問題①:在命令行內(nèi)輸入登錄命令“sqlplus S5120155364/123@orcl by sysdba”時(shí)無法正確連接

原因:使用了錯誤的連接詞“by”

解決方案:將其改為“sqlplus S5120155364/123@orcl as sysdba”-問題②:點(diǎn)擊“Enter”鍵,命令不執(zhí)行 原因:命令語句后遺漏分號或使用了中文分號 解決方案:改為以英文分號結(jié)尾的命令語句-問題③:無法以全庫方式導(dǎo)出數(shù)據(jù)庫(未解決)

實(shí)驗(yàn)六 數(shù)據(jù)庫的安全性

一、實(shí)驗(yàn)?zāi)康?/p>

? ? ? ? ? ? ? 理解數(shù)據(jù)庫的安全性保護(hù)

掌握ORACLE中有關(guān)用戶創(chuàng)建的方法 理解數(shù)據(jù)庫存取控制機(jī)制

熟練掌握PL-SQL的數(shù)據(jù)控制語言,能通過自主存取控制進(jìn)行權(quán)限管理 熟悉用戶資源文件的使用 熟悉ORACLE中角色管理

熟悉視圖機(jī)制在自主存取控制上的應(yīng)用

四、實(shí)驗(yàn)平臺

Oracle 11g

五、實(shí)驗(yàn)步驟、出現(xiàn)的問題及解決方案(不能解決的將問題列出)(1)實(shí)驗(yàn)步驟

1、同學(xué)之間相互授權(quán)訪問對方“讀者”表并能進(jìn)行查詢。

2、以SYSTEM登錄數(shù)據(jù)庫為你的帳號增加系統(tǒng)角色DBA.3、重新以自己的帳號登錄,創(chuàng)建一個數(shù)據(jù)庫用戶:帳號_USER1(注:帳號即學(xué)生登錄數(shù)據(jù)庫帳號,如:S20101206),該用戶擁有所有CONNECT, resource,DBA系統(tǒng)角色權(quán)限。

4、建立角色:帳號_OPER,該角色擁有調(diào)用存儲過程借書、還書、預(yù)約的權(quán)限,以及CONNECT系統(tǒng)角色權(quán)限。(注:執(zhí)行存儲過程的授權(quán)語句Grant execute on procedure_name to user/role)

5、創(chuàng)建一個數(shù)據(jù)庫用戶:帳號_USER2(注:帳號如:S20101206)為該用戶授權(quán)角色:帳號_OPER。以該用戶登錄,完成借書功能。

6、以自己的帳號登錄,如:S20101206,建立視圖VIEW_READER, 該視圖包含書目(ISBN, 書名,作者,出版單位,圖書分類名稱)(注:所有屬性來自關(guān)系書目和圖書分類)

7、創(chuàng)建一個數(shù)據(jù)庫用戶:帳號_USER3(注:帳號如:S20101206)該用戶具有對視圖VIEW_READER查詢的權(quán)限。創(chuàng)建一個概要文件,如果 帳號_USER3連續(xù)3次登錄失敗,則鎖定該賬戶,10天后該賬戶自動解鎖。以該用戶登錄進(jìn)行權(quán)限測試。

(2)問題及解決方案

-問題①:在命令行內(nèi)輸入登錄命令“sqlplus S5120155364/123@orcl by sysdba”時(shí)無法正確連接

原因:使用了錯誤的連接詞“by”

解決方案:將其改為“sqlplus S5120155364/123@orcl as sysdba”-問題②:點(diǎn)擊“Enter”鍵,命令不執(zhí)行 原因:命令語句后遺漏分號或使用了中文分號 解決方案:改為以英文分號結(jié)尾的命令語句

第二篇:數(shù)據(jù)庫原理實(shí)驗(yàn)指導(dǎo)書

《數(shù)據(jù)庫原理實(shí)驗(yàn)指導(dǎo)書》

河南科技大學(xué)電子信息工程學(xué)院目錄

實(shí)驗(yàn)規(guī)則..................................................................................................................................0 實(shí)驗(yàn)報(bào)告要求..........................................................................................................................2 基本實(shí)驗(yàn)方法..........................................................................................................................2 實(shí)驗(yàn)環(huán)境..................................................................................................................................2 實(shí)驗(yàn)一:數(shù)據(jù)定義及更新語句練習(xí)......................................................................................3 實(shí)驗(yàn)二:簡單查詢和連接查詢..............................................................................................5 實(shí)驗(yàn)三:分組查詢和嵌套查詢..............................................................................................7 實(shí)驗(yàn)四:視圖操作和數(shù)據(jù)控制..............................................................................................9 實(shí)驗(yàn)五:觸發(fā)器和存儲過程................................................................................................11 選作題目................................................................................................................................13

實(shí)驗(yàn)規(guī)則

為了順利完成實(shí)驗(yàn)教學(xué)任務(wù),確保人身設(shè)備安全,培養(yǎng)嚴(yán)謹(jǐn)、踏實(shí)、實(shí)事求是的科學(xué)作風(fēng)和愛護(hù)國家財(cái)產(chǎn)的優(yōu)良品質(zhì),特制定以下實(shí)驗(yàn)規(guī)則:

1、實(shí)驗(yàn)紀(jì)律

(1)在實(shí)驗(yàn)室不得做和實(shí)驗(yàn)無關(guān)的事情。(2)遵守紀(jì)律,不遲到,不曠課。

(3)不能拆卸硬件,更不能拿走實(shí)驗(yàn)設(shè)備或儀器。(4)保持實(shí)驗(yàn)室安靜、整潔,愛護(hù)公物。

2、實(shí)驗(yàn)過程

(1)預(yù)習(xí)實(shí)驗(yàn)內(nèi)容。自行設(shè)計(jì)SQL語句。

(2)上機(jī)操作。每執(zhí)行一句記錄執(zhí)行情況,主要是錯誤信息和錯誤原因。(3)檢查操作結(jié)果是否正確。

(4)根據(jù)實(shí)驗(yàn)過程的記錄書寫實(shí)驗(yàn)報(bào)告。

實(shí)驗(yàn)報(bào)告要求

1、報(bào)告用紙 采用統(tǒng)一的河南科技大學(xué)實(shí)驗(yàn)報(bào)告用紙,不得用別的紙張代替。

2、實(shí)驗(yàn)報(bào)告封面內(nèi)容

實(shí)驗(yàn)名稱:(如實(shí)驗(yàn)一 數(shù)據(jù)庫創(chuàng)建)班級名稱:(如計(jì)科101班)學(xué)生學(xué)號: 學(xué)生姓名: 實(shí)驗(yàn)時(shí)間:

3、實(shí)驗(yàn)報(bào)告內(nèi)容

見各具體實(shí)驗(yàn)項(xiàng)目的要求。

基本實(shí)驗(yàn)方法

本實(shí)驗(yàn)要求熟悉SQL Server環(huán)境和數(shù)據(jù)庫的相關(guān)知識。

實(shí)驗(yàn)環(huán)境

Microsoft SQL Server2012 2 實(shí)驗(yàn)一:數(shù)據(jù)定義及更新語句練習(xí)一、二、實(shí)驗(yàn)?zāi)康模菏炀氄莆沼肧QL語句實(shí)現(xiàn)數(shù)據(jù)庫和基本表的創(chuàng)建、數(shù)據(jù)的更新。預(yù)習(xí)要求:實(shí)驗(yàn)前復(fù)習(xí)講授過的有關(guān)創(chuàng)建數(shù)據(jù)庫、基本表的SQL語句,預(yù)習(xí)SQL Server2000環(huán)境,特別是資源管理器和查詢分析器的相關(guān)用法。

三、實(shí)驗(yàn)內(nèi)容:

(一)用SQL語句建立如下mySPJ數(shù)據(jù)庫,包括S,P,J,和SPJ四個基本表(教材第二章習(xí)題5中的四個表),要求實(shí)現(xiàn)關(guān)系的三類完整性。

S(SNO,SNAME,STATUS,CITY);P(PNO,PNAME,COLOR,WEIGHT);J(JNO,JNAME,CITY);SPJ(SNO,PNO,JNO,QTY)供應(yīng)商表S由供應(yīng)商代碼(SNO)、供應(yīng)商姓名(SNAME)、供應(yīng)商狀態(tài)(STATUS)、供應(yīng)商所在城市(CITY)組成。

零件表P由零件代碼(PNO)、零件名(PNAME)、顏色(COLOR)、重量(WEIGHT)組成。

工程項(xiàng)目表J由工程項(xiàng)目代碼(JNO)、工程項(xiàng)目名(JNAME)、工程項(xiàng)目所在城市(CITY)組成。

供應(yīng)情況表SPJ由供應(yīng)商代碼(SNO)、零件代碼(PNO)、工程項(xiàng)目代碼(JNO)、供應(yīng)數(shù)量(QTY)組成,表示某供應(yīng)商 供應(yīng)某種零件 給某工程項(xiàng)目的數(shù)量為QTY。

(二)分別使用插入、刪除、修改的方式更新基本表中的數(shù)據(jù)。

四、實(shí)驗(yàn)方法和步驟:

(一)使用Microsoft SQL Server企業(yè)管理器和查詢分析器建立數(shù)據(jù)庫mySPJ: 1.打開“開始->程序->Microsoft SQL Server->企業(yè)管理器”;

2.在企業(yè)管理器左邊的樹標(biāo)簽中依次打開“Microsoft SQL Server-> SQL Server組->(local)(Windows NT)->數(shù)據(jù)庫”,(local)(Windows NT)前的紅色標(biāo)記轉(zhuǎn)化為綠色標(biāo)記表明NT服務(wù)已啟動;

3.從企業(yè)管理器的“工具”菜單中選擇“SQL 查詢分析器”,打開查詢分析器后,在其窗口書寫創(chuàng)建數(shù)據(jù)庫mySPJ的SQL語句,點(diǎn)擊執(zhí)行按鈕(或F5鍵)執(zhí)行該SQL 3 語句;

4.在企業(yè)管理器左邊的樹標(biāo)簽中查看數(shù)據(jù)庫是否建立成功。

(二)在數(shù)據(jù)庫mySPJ中建立S,P,J,和SPJ四個基本表:

按照實(shí)驗(yàn)內(nèi)容給出的基本表結(jié)構(gòu)在查詢分析器窗口中書寫SQL語句分別建立各表,并設(shè)置主鍵和外鍵約束;

(三)更新表數(shù)據(jù):

1.利用Insert 語句將習(xí)題中給出的示例記錄插入各表。2.利用Update更新表中的記錄:

①將p表中的所有紅色零件的重量增加5。

②將spj表中所有天津供應(yīng)商的QTY屬性值減少10。用子查詢。

3.利用Delete語句刪除p表中的所有紅色零件的記錄。

4.SQL語句執(zhí)行后返回基本表查看更新后的結(jié)果,如果與期望不符,分析原因并記錄在實(shí)驗(yàn)報(bào)告中。

五、思考題:

(一)在為各表設(shè)定關(guān)鍵字時(shí)彈出的頁面中有關(guān)鍵字和索引選項(xiàng),試通過給基本表設(shè)定這兩個項(xiàng)目并說明二者的區(qū)別。

(二)在基本表中輸入數(shù)據(jù)時(shí),注意數(shù)據(jù)與字段的數(shù)據(jù)類型和長度以及能否為空的屬性是否一致,保存時(shí)如有錯誤分析錯誤原因,及時(shí)改正并將錯誤報(bào)告寫在實(shí)驗(yàn)報(bào)告中。

六、實(shí)驗(yàn)報(bào)告要求:

(一)實(shí)驗(yàn)?zāi)康模?二)實(shí)驗(yàn)內(nèi)容:

(三)完成情況(附上設(shè)計(jì)的SQL語句)。

(四)實(shí)驗(yàn)結(jié)果:如果是查詢語句,將查詢結(jié)果記錄列出來,其它可以不寫。(五)問題及解決:首先寫出執(zhí)行語句不成功的時(shí)候系統(tǒng)報(bào)告的錯誤信息。然后分析錯誤原因,并給出解決辦法。(六)回答思考題提出的問題,(七)實(shí)驗(yàn)總結(jié):心得體會,建議等。

實(shí)驗(yàn)二:簡單查詢和連接查詢

一、實(shí)驗(yàn)?zāi)康模菏炀氄莆沼肧QL語句實(shí)現(xiàn)的簡單查詢和多個數(shù)據(jù)表連接查詢。

二、預(yù)習(xí)要求:實(shí)驗(yàn)前復(fù)習(xí)講授過的有關(guān)簡單查詢與多表查詢的知識,編寫相應(yīng)的SQL語句。

三、實(shí)驗(yàn)內(nèi)容:

(一)完成下面的簡單查詢:

①查詢所有“天津”的供應(yīng)商明細(xì); ②查詢所有“紅色”的14公斤以上的零件。③查詢工程名稱中含有“廠”字的工程明細(xì)。(二)完成下面的連接查詢:

①等值連接:求s表和j表的相同城市的等值連接。

②自然連接:查詢所有的供應(yīng)明細(xì),要求顯示供應(yīng)商、零件和工程的名稱,并按照供應(yīng)、工程、零件排序。

③笛卡爾積:求s和p表的笛卡爾積 ④左連接:求j表和spj表的左連接。⑤右連接:求spj表和j表的右連接。

四、實(shí)驗(yàn)方法和步驟:

參照實(shí)驗(yàn)一中給出的使用Microsoft SQL Server企業(yè)管理器和SQL查詢分析器的方法,將實(shí)驗(yàn)內(nèi)容中所要求的查詢項(xiàng)目依次用SQL語句實(shí)現(xiàn),并記錄下執(zhí)行結(jié)果。

五、思考題:

查看實(shí)驗(yàn)內(nèi)容2中左連接和右連接的執(zhí)行結(jié)果是否一致,為什么?

六、實(shí)驗(yàn)報(bào)告要求:(一)實(shí)驗(yàn)?zāi)康模?二)實(shí)驗(yàn)內(nèi)容:

5(三)完成情況(附上設(shè)計(jì)的SQL語句)。

(四)實(shí)驗(yàn)結(jié)果:如果是查詢語句,將查詢結(jié)果記錄列出來,其它可以不寫。(五)問題及解決:首先寫出執(zhí)行語句不成功的時(shí)候系統(tǒng)報(bào)告的錯誤信息。然后分析錯誤原因,并給出解決辦法。(六)回答思考題提出的問題,(七)實(shí)驗(yàn)總結(jié):心得體會,建議等。實(shí)驗(yàn)三:分組查詢和嵌套查詢

一、實(shí)驗(yàn)?zāi)康模菏炀氄莆沼肧QL語句實(shí)現(xiàn)多個數(shù)據(jù)表的分組查詢和嵌套查詢。

二、預(yù)習(xí)要求:實(shí)驗(yàn)前復(fù)習(xí)講授過的有關(guān)分組查詢和嵌套查詢的知識,編寫相應(yīng)的SQL語句。

三、實(shí)驗(yàn)內(nèi)容:(一)分組查詢:

1.求各種顏色零件的平均重量。2.求北京供應(yīng)商和天津供應(yīng)商的總個數(shù)。3.求各供應(yīng)商供應(yīng)的零件總數(shù)。4.求各供應(yīng)商供應(yīng)給各工程的零件總數(shù)。5.求使用了100個以上P1零件的工程名稱。6.求各工程使用的各城市供應(yīng)的零件總數(shù)。

(二)嵌套查詢:

1.in連接謂詞查詢:

① 查詢沒有使用天津供應(yīng)商供應(yīng)的紅色零件的工程名稱。② 查詢供應(yīng)了1000個以上零件的供應(yīng)商名稱。(having)2.比較運(yùn)算符:求重量大于所有零件平均重量的零件名稱。3.Exists連接謂詞:

① 查詢供應(yīng)J1的所有的零件都是紅色的供應(yīng)商名稱。② 至少用了供應(yīng)商S1所供應(yīng)的全部零件的工程號JNO。

四、實(shí)驗(yàn)方法和步驟:

參照實(shí)驗(yàn)一中給出的使用Microsoft SQL Server企業(yè)管理器和SQL查詢分析器的方法,將實(shí)驗(yàn)內(nèi)容中所要求的查詢項(xiàng)目依次用SQL語句實(shí)現(xiàn),并記錄下執(zhí)行結(jié)果。

五、思考題:

(一)嵌套查詢中的in連接謂詞查詢,關(guān)鍵字in可以直接用any代替么?什么情況下in和any可以互相代替?

(二)嵌套查詢中的內(nèi)查詢?yōu)橥獠樵兎祷氐膬?nèi)容是什么?是表達(dá)式?視圖?還是物理數(shù)據(jù)集合?

六、實(shí)驗(yàn)報(bào)告要求:(一)實(shí)驗(yàn)?zāi)康模?二)實(shí)驗(yàn)內(nèi)容:

(三)完成情況(附上設(shè)計(jì)的SQL語句)。

(四)實(shí)驗(yàn)結(jié)果:如果是查詢語句,將查詢結(jié)果記錄列出來,其它可以不寫。(五)問題及解決:首先寫出執(zhí)行語句不成功的時(shí)候系統(tǒng)報(bào)告的錯誤信息。然后分析錯誤原因,并給出解決辦法。(六)回答思考題提出的問題,(七)實(shí)驗(yàn)總結(jié):心得體會,建議等。

實(shí)驗(yàn)四:視圖操作和數(shù)據(jù)控制

一、實(shí)驗(yàn)?zāi)康模菏炀氄莆沼肧QL語句實(shí)現(xiàn)視圖操作和數(shù)據(jù)控制。

二、預(yù)習(xí)要求:實(shí)驗(yàn)前復(fù)習(xí)講授過的有關(guān)視圖操作和數(shù)據(jù)控制的知識,編寫相應(yīng)的SQL語句。

三、實(shí)驗(yàn)內(nèi)容:

(一)定義如下視圖:

①查詢北京的供應(yīng)商的編號、名稱和城市。②查詢S1供應(yīng)商的所有供應(yīng)明細(xì)。

③查詢各工程名稱使用的各種顏色零件的個數(shù)。查詢上面定義的視圖。

(二)數(shù)據(jù)控制:

①使用GRANT把對S表查詢的權(quán)利授予WangLi。

②使用GRANT把對P表查詢、插入、修改、刪除的權(quán)利授予LiMing。

③使用REVOKE把LiMing對P表插入、刪除的權(quán)利回收。

四、實(shí)驗(yàn)方法和步驟:

參照實(shí)驗(yàn)一中給出的使用Microsoft SQL Server企業(yè)管理器和SQL查詢分析器的方法,將實(shí)驗(yàn)內(nèi)容中所要求的查詢項(xiàng)目依次用SQL語句實(shí)現(xiàn),并記錄下執(zhí)行結(jié)果。

五、思考題:

實(shí)驗(yàn)內(nèi)容中的哪些視圖可以用來更新記錄?

六、實(shí)驗(yàn)報(bào)告要求:(一)實(shí)驗(yàn)?zāi)康模?二)實(shí)驗(yàn)內(nèi)容:

(三)完成情況(附上設(shè)計(jì)的SQL語句)。

(四)實(shí)驗(yàn)結(jié)果:如果是查詢語句,將查詢結(jié)果記錄列出來,其它可以不寫。(五)問題及解決:首先寫出執(zhí)行語句不成功的時(shí)候系統(tǒng)報(bào)告的錯誤信息。然后 9 分析錯誤原因,并給出解決辦法。(六)回答思考題提出的問題,(七)實(shí)驗(yàn)總結(jié):心得體會,建議等。

實(shí)驗(yàn)五:觸發(fā)器和存儲過程

一、實(shí)驗(yàn)?zāi)康模豪斫庥|發(fā)器和存儲過程的含義,掌握用SQL語句實(shí)現(xiàn)觸發(fā)器和存儲過程的編寫,并初步掌握什么情況下使用事務(wù)。

二、預(yù)習(xí)要求:存儲過程和觸發(fā)器的相關(guān)概念,事務(wù)的相關(guān)概念,編寫相應(yīng)的SQL語句。

三、實(shí)驗(yàn)內(nèi)容:

有一個小型的圖書管理數(shù)據(jù)庫,包含的表為:

bookstore(bookid,bookname,bookauthor,purchasedate,state);--圖書庫存表

borrowcard(cardid,ownername);--借書證表

borrowlog(cardid,bookid,borrowdate,returndate);--借書記錄表 寫一個存儲過程,實(shí)現(xiàn)借書操作,要求有事務(wù)處理。(1)讀者借書,要先設(shè)置書籍不在庫標(biāo)志state(借出),然后增加借書記錄,在同一事務(wù)中完成。(2)要求在事務(wù)執(zhí)行過程中引入錯誤觸發(fā)事件,以此體會事務(wù)的錯誤保護(hù)機(jī)制和事務(wù)編程的作用。(3)要求用觸發(fā)器實(shí)現(xiàn)表的完整性控制。

四、實(shí)驗(yàn)方法和步驟:

(一)在查詢分析器中創(chuàng)建包含以上三張表的數(shù)據(jù)庫。

(二)參考CREATE PROCEDURE語句和Create Trigger語句。在事務(wù)執(zhí)行過程中引入錯誤觸發(fā)事件,可以考慮在增加借書記錄時(shí)違反實(shí)體完整性或參照完整性,以此體會事務(wù)的錯誤保護(hù)機(jī)制,并用觸發(fā)器實(shí)現(xiàn)表的完整性控制。

五、思考題:

如何通過系統(tǒng)的設(shè)置實(shí)現(xiàn)類似的功能,而不需觸發(fā)器?

六、實(shí)驗(yàn)報(bào)告要求:(一)實(shí)驗(yàn)?zāi)康模?二)實(shí)驗(yàn)內(nèi)容:

(三)完成情況(附上設(shè)計(jì)的SQL語句)。

11(四)實(shí)驗(yàn)結(jié)果:如果是查詢語句,將查詢結(jié)果記錄列出來,其它可以不寫。(五)問題及解決:首先寫出執(zhí)行語句不成功的時(shí)候系統(tǒng)報(bào)告的錯誤信息。然后分析錯誤原因,并給出解決辦法。(六)回答思考題提出的問題,實(shí)驗(yàn)總結(jié):心得體會,建議等。

選作題目

選作題目1:用vb,delphi或者c++builder設(shè)計(jì)一個數(shù)據(jù)庫應(yīng)用程序,實(shí)現(xiàn)一個簡單的成績管理,建立三個表:學(xué)生表S,課程表C和成績表SC。要求實(shí)現(xiàn)的功能:(1)維護(hù)學(xué)生信息;(2)維護(hù)課程信息;(3)錄入成績;(4)查詢一個學(xué)生的所有課程成績;(5)查詢每門課程的平均成績。(6)打印學(xué)生成績報(bào)表;(7)打印每門課程的平均成績報(bào)表。

選作題目2:自由結(jié)合以(5-6)人為小組完成一個數(shù)據(jù)庫系統(tǒng)設(shè)計(jì)的小課題。要求用ERWIN工具對數(shù)據(jù)庫進(jìn)行建模。

第三篇:數(shù)據(jù)庫原理實(shí)驗(yàn)教案

《數(shù)據(jù)庫原理》課程實(shí)驗(yàn)

實(shí)驗(yàn)1 創(chuàng)建數(shù)據(jù)庫和數(shù)據(jù)表

一、實(shí)驗(yàn)?zāi)康?/p>

熟悉SQL Server Management Studio界面;掌握通過圖形化向?qū)Ш蛨?zhí)行Transact-SQL語句創(chuàng)建數(shù)據(jù)庫的方法。

二、實(shí)驗(yàn)環(huán)境

Windows XP操作系統(tǒng),SQL Server 2005軟件。

三、實(shí)驗(yàn)課時(shí)

2課時(shí)。

四、實(shí)驗(yàn)內(nèi)容

SQL Server中的一個數(shù)據(jù)庫必須至少包含一個數(shù)據(jù)文件和一個事務(wù)日志文件,所以創(chuàng)建數(shù)據(jù)庫就是建立主數(shù)據(jù)文件和日志文件。

在SQL Server 2005中創(chuàng)建數(shù)據(jù)庫的方法主要有兩種:一是在SQL Server Management Studio窗口中使用可視化界面,通過方便的圖形化向?qū)?chuàng)建,二是通過執(zhí)行Transact-SQL語句創(chuàng)建。

(一)向?qū)Х绞絼?chuàng)建

1、從“開始”菜單選擇“所有程序”→“Microsoft SQL Server 2005”,打開“SQL Server Management Studio”窗口,使用Windows或SQL Server身份驗(yàn)證建立連接。

2、在“對象資源管理器”窗格中展開服務(wù)器,選擇“數(shù)據(jù)庫”節(jié)點(diǎn)右擊,從彈出的快捷菜單中選擇“新建數(shù)據(jù)庫”命令,打開“新建數(shù)據(jù)庫”窗口。

3、該窗口中有3個頁,分別是“常規(guī)”、“選項(xiàng)”和“文件組”,完成這3個頁的內(nèi)容即可完成數(shù)據(jù)庫的創(chuàng)建。這里,我們僅設(shè)置“常規(guī)”的相應(yīng)內(nèi)容,其他2個頁的內(nèi)容按照默認(rèn)設(shè)置即可。

(1)“數(shù)據(jù)庫名稱”文本框中輸入數(shù)據(jù)庫的名稱,如“sample_st”,再輸入該數(shù)據(jù)庫的所有者,這里使用默認(rèn)值即可。(也可以通過單擊文本框右邊的“瀏覽”按鈕選擇所有者。

(2)“數(shù)據(jù)庫文件”列表中包括兩行,一個是數(shù)據(jù)文件,一個是日志文件。通過單擊下面相應(yīng)的按鈕可以添加或刪除相應(yīng)的數(shù)據(jù)文件。

? 邏輯名稱:指定該文件的文件名。

? 文件類型:用于區(qū)別當(dāng)前文件是數(shù)據(jù)文件還是日志文件。? 文件組:顯示當(dāng)前數(shù)據(jù)庫文件所屬的文件組。

? 初始大小:指定該文件的初始容量。在SQL Server 2005中數(shù)據(jù)文件的默認(rèn)值為3MB,日志文件的默認(rèn)值為1MB。? 自動增長:用于設(shè)置在文件容量不夠用時(shí),文件根據(jù)何種增長方式自動增長。

? 路徑:指定存放在文件的目錄。默認(rèn)情況下,SQL Server 2005將存放路徑設(shè)置為其安裝目錄下的data子目錄,單擊該列中的按鈕可以在打開的“定位文件夾”對話框中更改數(shù)據(jù)庫的存儲路徑。

完成上述操作后,單擊“確定”按鈕關(guān)閉“新建數(shù)據(jù)庫”窗口,即完成了數(shù)據(jù)庫的創(chuàng)建,可以在“對象資源管理器”窗格中看到新建的數(shù)據(jù)庫。

(二)語言方式創(chuàng)建

SQL Server 2005使用的Transact-SQL語言是標(biāo)準(zhǔn)SQL的增強(qiáng)版本,使用它提供的Create Database語句同樣可以完成對數(shù)據(jù)庫的建立(參考內(nèi)容見附錄)。

1、單擊“新建查詢”按鈕,創(chuàng)建一個查詢輸入窗口將附錄中的語句復(fù)制到該窗口。選擇創(chuàng)建數(shù)據(jù)庫的命令,單擊工具欄中的“分析”按鈕,可以檢查語法錯誤;單擊“執(zhí)行”按鈕即可執(zhí)行語句,在查詢窗口內(nèi)的“查詢”窗格中可以看到“命令已成功完成”的提示消息。在“對象資源管理器”窗格中刷新,即可看到新建的數(shù)據(jù)庫。

2、繼續(xù)執(zhí)行Create Database之后的語句,在“sample_st”數(shù)據(jù)庫中用Create Table命令依次建立Student、Course和SC這三個數(shù)據(jù)表,利用Insert命令為各數(shù)據(jù)表添加數(shù)據(jù)。(參考內(nèi)容見教材P84)

(三)知識鞏固

仿照附錄內(nèi)容,用SQL-DDL語言創(chuàng)建“產(chǎn)品訂購”數(shù)據(jù)庫,包含四個數(shù)據(jù)表S、P、J和SPJ,表結(jié)構(gòu)及內(nèi)容見教材P122。

實(shí)驗(yàn)2 數(shù)據(jù)庫的簡單查詢

一、實(shí)驗(yàn)?zāi)康?/p>

掌握單表查詢中各個子句(Select、From、Where、Group、Having、Order)的用法,特別要掌握比較運(yùn)算符和邏輯運(yùn)算符的使用。

二、實(shí)驗(yàn)環(huán)境

Windows XP操作系統(tǒng),SQL Server 2005軟件。

三、實(shí)驗(yàn)課時(shí)

2課時(shí)。

四、實(shí)驗(yàn)內(nèi)容

在已建立的數(shù)據(jù)庫和數(shù)據(jù)表的基礎(chǔ)上,用Select語句完成下列查詢操作。

1、查詢?nèi)w學(xué)生的學(xué)號和姓名。

select sn,sno from s

2、查詢?nèi)w學(xué)生的所有基本信息(僅針對Student表)。

select * from s

3、對SC表查詢?nèi)w學(xué)生的選課記錄,在顯示結(jié)果中為“Grade”列增加5分。select score+5 from sc

4、查詢?nèi)w學(xué)生的學(xué)號和姓名,將原來的英文列名設(shè)置中文別名。select sn as 姓名,sno as 學(xué)號 from s

5、顯示所有選課學(xué)生的學(xué)號,去掉重復(fù)結(jié)果。

select distinct sno from sc

6、查詢成績在80分以上的學(xué)生選課記錄

select * from sc where score>80

7、查詢經(jīng)濟(jì)系所有學(xué)生的學(xué)號和姓名。

select sn,sno from s where dept='經(jīng)濟(jì)系'

8、查詢成績在80~90分的學(xué)生選課記錄。

select * from sc where score between 80 and 90

9、查詢年齡不在22~25的學(xué)生記錄。

select * from s where age not between 22 and 25

10、查詢所有姓“劉”的學(xué)生記錄。

select * from s where sn like'劉%'

11、查詢無考試成績(成績?yōu)榭罩担┑膶W(xué)號、課程號。5

select sno ,cno from sc where score is null

12、查詢考試成績非空值的學(xué)號、課程號。

select sno ,cno from sc where score is null

13、查詢數(shù)學(xué)系年齡小于20歲的學(xué)生記錄。

select * from s where dept ='數(shù)學(xué)系'and age <28

14、查詢選修了“101”或“102”課程的選課記錄。select * from c where cno ='101' or cno ='102'

15、查詢學(xué)生總?cè)藬?shù)。

select count(sno)from s

16、查詢選修了課程的學(xué)生人數(shù)。

select count(distinct sno)from sc

17、查詢選修了“101”課程的學(xué)生的平均成績。

select AVG(score)from sc

where cno='101'

18、查詢學(xué)號為“01003”的學(xué)生的考試總成績。

select sum(score)from sc

where sno=01003

19、查詢“101”課程的最高分和最低分。

select max(score),MIN(score)from sc

where cno='101'

20、查詢每門課程的選課人數(shù)。

select cno,COUNT(sno)from sc

group by cno

21、查詢每個學(xué)生的學(xué)號、選課數(shù)、平均成績和總成績。

select sno,COUNT(cno)/*,AVG(score),sum(score)*/ from sc group by sno

22、查詢選課數(shù)超過2的學(xué)生學(xué)號及其選課數(shù)。

select sno,COUNT(cno)from sc

group by sno

having COUNT(*)>2

23、查詢所有學(xué)生信息,查詢結(jié)果按年齡降序排列。(針對Student表操作)

select * from s order by AGE desc

24、查詢所有學(xué)生信息,查詢結(jié)果按系名升序,同系學(xué)生按年齡降序排列。

select * from s order by dept,AGE desc

25、查詢選課數(shù)超過2的學(xué)生學(xué)號及其選課數(shù),查詢結(jié)果按選課數(shù)降序排列。

select sno,COUNT(cno)from sc group by sno having COUNT(*)>2 order by count(cno)desc

實(shí)驗(yàn)3 數(shù)據(jù)庫的多表查詢

一、實(shí)驗(yàn)?zāi)康?/p>

繼續(xù)熟練SQL-SELECT語句的使用;理解多表查詢的概念;掌握多表連接查詢中各個子句的用法,特別要比較內(nèi)連接和外連接的結(jié)果。掌握非相關(guān)子查詢、相關(guān)子查詢的用法,理解它們的執(zhí)行過程;學(xué)會在SQL Server中用Exists實(shí)現(xiàn)交運(yùn)算,用Not Exists實(shí)現(xiàn)差運(yùn)算。

二、實(shí)驗(yàn)環(huán)境

Windows XP操作系統(tǒng),SQL Server 2005軟件。

三、實(shí)驗(yàn)課時(shí)

2課時(shí)。

四、實(shí)驗(yàn)內(nèi)容

(一)、在已建立的數(shù)據(jù)庫和數(shù)據(jù)表的基礎(chǔ)上,用Select語句的連接查詢完成下列操作。

1、查詢每個學(xué)生的基本信息及其選課情況。

2、查詢選修“101”課程的學(xué)生學(xué)號、姓名和成績。

3、查詢與“李平”在同一個系學(xué)習(xí)的學(xué)生記錄。

4、查詢與“李平”年齡相同的學(xué)生記錄。

5、查詢選修課程名為“數(shù)據(jù)庫原理”的選課記錄。

6、查詢選修課程名為“數(shù)據(jù)庫原理”的學(xué)生記錄。

7、查詢選修“101”課程且成績≥90的學(xué)號、姓名和成績。

8、查詢“李平”的所有選課記錄。

9、查詢數(shù)學(xué)系學(xué)生選修的課程號,要求結(jié)果中去掉重復(fù)記錄。

10、查詢計(jì)算機(jī)系選修課程數(shù)≥2的學(xué)號、姓名及平均成績,查詢結(jié)果按平均成績降序。

11、查詢每個學(xué)生的學(xué)號、選修課程號、課程名及成績。

12、查詢所有學(xué)生的選修情況(包括選課和未選課的學(xué)生),要求顯示學(xué)號、姓名、課程號和成績。

(二)、在已建立的數(shù)據(jù)庫和數(shù)據(jù)表的基礎(chǔ)上,用Select語句的嵌套查詢完成下列操作。

1、查詢選修“101”課程且成績≥90的學(xué)號、姓名。

2、查詢“李平”的所有選課記錄。

3、查詢與“李平”在同一個系學(xué)習(xí)的學(xué)生記錄。

4、查詢與“李平”年齡相同的學(xué)生記錄。

5、查詢選修課程名為“數(shù)據(jù)庫原理”的選課記錄,輸出結(jié)果包括學(xué)號和成績。

6、查詢選修課程名為“數(shù)據(jù)庫原理”的學(xué)生記錄,輸出結(jié)果包括學(xué)號、姓名和所在系。

7、查詢學(xué)號為“01003”學(xué)生的選修課程號和課程名。

8、查詢沒有選修“101”課程的學(xué)生學(xué)號和姓名。

9、查詢選修“101”課程或“102”課程的學(xué)生姓名。

10、查詢選修“101”課程和“102”課程的學(xué)生學(xué)號。

11、查詢選修“101”課程但沒選修“102”課程的學(xué)生學(xué)號。

12、查詢沒有選修任何課程的學(xué)生記錄,輸出結(jié)果包括學(xué)號、姓名和所在系。

13、查詢數(shù)學(xué)系學(xué)生選修的課程號,要求結(jié)果中去掉重復(fù)記錄。

14、查詢選修課程至少包含“01003”選修課程的學(xué)生學(xué)號。實(shí)驗(yàn)4 數(shù)據(jù)庫更新、視圖定義及使用

一、實(shí)驗(yàn)?zāi)康?/p>

掌握Insert、Update、Delete語句的使用;對于Insert語句,要求理解默認(rèn)值約束、空值約束在插入記錄時(shí)所起的作用。理解視圖的概念,掌握Create View、Drop View語句的使用;掌握基于視圖的查詢語句的使用。

二、實(shí)驗(yàn)環(huán)境

Windows XP操作系統(tǒng),SQL Server 2005軟件。

三、實(shí)驗(yàn)課時(shí)

2課時(shí)。

四、實(shí)驗(yàn)內(nèi)容

(一)、在已建立的數(shù)據(jù)庫和數(shù)據(jù)表的基礎(chǔ)上,向數(shù)據(jù)庫中添加一個臨時(shí)表ST,其結(jié)構(gòu)比Student表結(jié)構(gòu)多一個score字段。用Insert語句向臨時(shí)表輸入數(shù)據(jù),輸入有誤時(shí)用Update語句進(jìn)行修改。再用三個更新語句完成下列操作。

1、向Student表添加若干新記錄,內(nèi)容自定。(觀察已定義的表的約束情況)

2、向SC表添加新記錄,內(nèi)容自定,不低于10條(注意不能違反參照完整性)。

3、為臨時(shí)表ST添加記錄。

4、把Student表的所有行一次性地加到臨時(shí)表ST中。

5、在ST表中把所有學(xué)生的成績加2分。

6、在ST表中把所有學(xué)生的年齡增加1。

7、在ST表中把“李平”的所在系改為“計(jì)算機(jī)”。

8、在ST表中將選修課程“數(shù)據(jù)庫原理”的學(xué)生成績加2分。

9、在SC表中刪除所有成績?yōu)榭罩档倪x修記錄。

10、刪除計(jì)算機(jī)系選修成績不及格的選課記錄。

(二)、在已建立的數(shù)據(jù)庫和數(shù)據(jù)表的基礎(chǔ)上,完成下列操作。

1、建立數(shù)學(xué)系學(xué)生的視圖MAST。

2、建立計(jì)算機(jī)系選修課程名為“數(shù)據(jù)庫原理”的學(xué)生視圖,視圖名:CSTVIEW,該視圖中應(yīng)包括屬性列:學(xué)號、姓名、成績。

3、創(chuàng)建一個名為STSUMVIEW的視圖,包括所有學(xué)生的學(xué)號和總成績。

4、建立學(xué)生選課視圖SCVIEW,包括所有學(xué)生的學(xué)號、姓名、課程號、課程名和成績。

5、通過MAST視圖查詢學(xué)生基本信息。

6、通過SCVIEW查詢成績大于90分的學(xué)生的學(xué)號和成績。

7、查詢計(jì)算機(jī)系選修課程名為“數(shù)據(jù)庫原理”并且成績大于85分的學(xué)生的學(xué)號和成績。

8、通過MAST視圖將學(xué)號為“01008”學(xué)生的年齡修改為21歲。

9、通過MAST視圖將學(xué)號為“01009”學(xué)生所在系改為“經(jīng)濟(jì)”,是否能成功執(zhí)行?若不能成功請說明理由;若修改成功,請?jiān)俅瓮ㄟ^MAST視圖查詢學(xué)生基本信息,是否能查詢到該生?若不能查詢請說明理由。

10、通過SCVIEW視圖將學(xué)號為“01004”學(xué)生的總成績修改為380分,是否能成功執(zhí)行?若不能成功請說明理由。

實(shí)驗(yàn)5 數(shù)據(jù)庫的安全與保護(hù)

一、實(shí)驗(yàn)?zāi)康?/p>

理解SQL Server的用戶與權(quán)限管理機(jī)制,掌握用對象資源管理器創(chuàng)建服務(wù)器登錄帳號,并同時(shí)建立用戶。掌握如何為給定的用戶分配權(quán)限。

二、實(shí)驗(yàn)環(huán)境

Windows XP操作系統(tǒng),SQL Server 2005軟件。

三、實(shí)驗(yàn)課時(shí)

2課時(shí)。

四、實(shí)驗(yàn)內(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身份登錄來驗(yàn)證權(quán)限分配成功。

(3)使用Test1身份登錄,收回剛剛分配給Test2的創(chuàng)建數(shù)據(jù)表的權(quán)限;用Test2身份登錄來驗(yàn)證權(quán)限回收成功。

五、實(shí)驗(yàn)步驟

1、使用對象資源管理器創(chuàng)建兩個服務(wù)器登錄帳號。以系統(tǒng)管理員身份登錄SQL Server。打開“SQL Server Management Studio”窗口,在對象資源管理器列表中,打開展開“安全性”文件夾,選擇“登錄名”圖標(biāo),單擊鼠標(biāo)右鍵,在彈出的菜單中選擇“新建登錄名”。在打開的對話框中依次建立Test1和Test2,選擇“SQL Server身份驗(yàn)證”,同時(shí)還要輸入密碼,默認(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)建。

2、創(chuàng)建新的數(shù)據(jù)庫用戶。

在對象資源管理器中選中要訪問操作的數(shù)據(jù)庫,展開“安全性”文件夾,在“用戶”文件夾中查找是否已建立與登錄名Test1和Test2同名的數(shù)據(jù)庫用戶,若已建立,則在屬性中修改其默認(rèn)架構(gòu)為guest;否則右擊鼠標(biāo)在菜單中選擇“新建用戶”選項(xiàng),出現(xiàn)“數(shù)據(jù)庫用戶-新建”對話框,建立相應(yīng)的用戶。最后,在sample_st數(shù)據(jù)庫的“安全性?架構(gòu)?guest?屬性?權(quán)限”中,為test1和test2用戶分配相應(yīng)權(quán)限。

3、用Grant、Revoke命令實(shí)現(xiàn)對用戶的授權(quán)和收權(quán)。

4、用Create命令創(chuàng)建數(shù)據(jù)表驗(yàn)證授權(quán)和收權(quán)是否成功。

5、以系統(tǒng)管理員身份登錄SQL Server。使用:“GRANT SELECT ON SC TO Test1 WITH GRANT OPTION”命令,再分別以Test1和Test2身份登錄,進(jìn)行授權(quán)及查詢數(shù)據(jù)表,驗(yàn)證“WITH GRANT OPTION”能否成功執(zhí)行。

6、以系統(tǒng)管理員身份使用“REVOKE”命令回收上述授權(quán)。

實(shí)驗(yàn)6 數(shù)據(jù)庫的完整性

一、實(shí)驗(yàn)?zāi)康?/p>

通過實(shí)驗(yàn)掌握數(shù)據(jù)庫完整性概念,掌握利用SQL Server 2005實(shí)現(xiàn)數(shù)據(jù)庫完整性的基本方法和步驟。

二、實(shí)驗(yàn)環(huán)境

Windows XP操作系統(tǒng),SQL Server 2005軟件。

三、實(shí)驗(yàn)課時(shí)

2課時(shí)。

四、實(shí)驗(yàn)內(nèi)容

1、建立關(guān)系模式。

完成教材P164第6題,用SQL語言定義“職工”和“部門”兩個關(guān)系模式: 職工(職工號,姓名,年齡,職務(wù),工資,部門號),職工號為主碼 部門(部門號,名稱,經(jīng)理名,電話), 部門號為主碼 要求在模式中完成以下完整性約束條件的定義:(1)定義每個模式的主碼;(2)定義參照完整性;

(3)定義職工年齡不得超過60歲;(4)定義部門名稱必須取值唯一。

2、驗(yàn)證完整性約束。

使用Insert Values語句向兩個表中各插入5~10條記錄,對下列內(nèi)容進(jìn)行驗(yàn)證。(1)驗(yàn)證主鍵約束:“職工”和“部門”兩個表中是否能接受主碼值相同的記錄,通過實(shí)例驗(yàn)證。

(2)驗(yàn)證唯一約束:“部門”表中是否能接受名稱相同的兩個不同記錄?為什么?

(3)驗(yàn)證檢查約束:“職工”表中能否接受年齡不滿足條件的記錄?為什么?

(4)驗(yàn)證參照完整性:若“部門”表中不存在部門號為“008”的記錄,是否能在“職工”表中插入部門號為“008”的職工記錄?若刪除“001”部門的所有信息,正確的操作步驟是什么?

實(shí)驗(yàn)7 數(shù)據(jù)庫設(shè)計(jì)實(shí)驗(yàn)

一、實(shí)驗(yàn)?zāi)康?/p>

通過實(shí)驗(yàn)掌握數(shù)據(jù)庫設(shè)計(jì)的基本方法和步驟。

二、實(shí)驗(yàn)環(huán)境

Windows XP操作系統(tǒng),SQL Server 2005軟件。

三、實(shí)驗(yàn)課時(shí)

2課時(shí)。

四、實(shí)驗(yàn)內(nèi)容

1、選定實(shí)驗(yàn)題目,為某個單位或部門設(shè)計(jì)數(shù)據(jù)庫應(yīng)用系統(tǒng),比如:學(xué)生成績管理、機(jī)房上機(jī)管理、職工檔案管理、商品庫存管理、圖書管理、工資管理等。

2、根據(jù)選定的題目進(jìn)行需求分析,重點(diǎn)分析數(shù)據(jù)需求和功能需求。

3、概念結(jié)構(gòu)設(shè)計(jì):畫出E-R圖。

4、邏輯結(jié)構(gòu)設(shè)計(jì):設(shè)計(jì)數(shù)據(jù)庫和數(shù)據(jù)表的具體結(jié)構(gòu),指出各表的屬性名稱、數(shù)據(jù)類型;說明各表的主碼及表之間的關(guān)聯(lián)情況;說明本設(shè)計(jì)是否已達(dá)到3NF要求。

5、簡要評價(jià)系統(tǒng)設(shè)計(jì)的優(yōu)點(diǎn)和不足。

五、實(shí)驗(yàn)要求

1、提交設(shè)計(jì)報(bào)告,涵蓋實(shí)驗(yàn)內(nèi)容的全部信息,不低于1000字。

2、提交建立應(yīng)用系統(tǒng)數(shù)據(jù)庫的代碼,所有數(shù)據(jù)表中的記錄總數(shù)不低于50條。(請參照實(shí)驗(yàn)2的附錄建立數(shù)據(jù)庫)

實(shí)驗(yàn)8 存儲過程實(shí)驗(yàn)

一、實(shí)驗(yàn)?zāi)康?/p>

通過實(shí)驗(yàn)熟悉使用存儲過程進(jìn)行數(shù)據(jù)庫應(yīng)用程序設(shè)計(jì)的方法

二、實(shí)驗(yàn)環(huán)境

Windows XP操作系統(tǒng),SQL Server 2005軟件。

三、實(shí)驗(yàn)課時(shí)

2課時(shí)。

四、實(shí)驗(yàn)內(nèi)容

對sample_st數(shù)據(jù)庫,編寫存儲過程,完成下面功能

1、統(tǒng)計(jì)任意一門課程的平均成績

2、統(tǒng)計(jì)所有課程的平均成績

3、統(tǒng)計(jì)任意一門課程的成績分布情況,即按照分?jǐn)?shù)段統(tǒng)計(jì)人數(shù)(即<60、60-69、70-79、80-89、90以上)

第四篇:數(shù)據(jù)庫原理實(shí)驗(yàn)三

數(shù)據(jù)庫原理及應(yīng)用實(shí)驗(yàn)報(bào)告

實(shí)驗(yàn)名稱:存儲過程 實(shí)驗(yàn)類型:驗(yàn)證型 實(shí)驗(yàn)環(huán)境:oracle 11g 指導(dǎo)教師:陳 駿 專業(yè)班級:信安1505班 姓

名:

學(xué)

號:512015 聯(lián)系電話:電子郵件: 實(shí)驗(yàn)地點(diǎn):東6E501 實(shí) 驗(yàn) 日 期: 2017年5月10日 實(shí)驗(yàn)報(bào)告日期:2017年 5月 11日

成績:__________________________

一、實(shí)驗(yàn)?zāi)康?/p>

(1)了解存儲過程的概念、優(yōu)點(diǎn)

(2)熟練掌握創(chuàng)建存儲過程的創(chuàng)建方法(3)熟練掌握存儲過程的調(diào)用方法

二、實(shí)驗(yàn)平臺

Oracle 11g

三、實(shí)驗(yàn)步驟、出現(xiàn)的問題及解決方案(不能解決的將問題列出)(1)實(shí)驗(yàn)步驟

1)建立存儲過程完成圖書管理系統(tǒng)中的借書功能。

功能要求:

? 借書時(shí)要求輸入借閱流水號,借書證號,圖書編號。(即該存儲過程有3個輸入?yún)?shù))

? 借書時(shí),借書日期為系統(tǒng)時(shí)間。? 圖書的是否借出改為‘是’

2)建立存儲過程完成圖書管理系統(tǒng)中的預(yù)約功能。? 預(yù)約時(shí)要求輸入預(yù)約流水號,借書證號,ISBN。(即該存儲過程有3個輸入?yún)?shù))

? 存儲過程先檢查輸入的ISBN版本的圖書是否都已借出,如果是則進(jìn)行預(yù)約,否則提示“該書目有可借圖書,請查找”。? 預(yù)約時(shí)間為系統(tǒng)時(shí)間。

3)建立存儲過程完成圖書管理系統(tǒng)中的還書功能。

? 還書時(shí)要求輸入借書證號,圖書編號,罰款分類號(即該存儲過程有3個輸入?yún)?shù))。

? 還書日期為系統(tǒng)時(shí)間。? 圖書的是否借出改為‘否’。

(2)問題及解決方案

1)問題一:步驟一無法執(zhí)行

原因:已創(chuàng)建的table中無“借書”項(xiàng)

解決方案:將原代碼中的“借書”改為“借閱” 2)問題二:步驟二中出現(xiàn)無法識別的符號 原因:將英文分號誤寫為中文分號

解決方案:修正為英文分號“;”

四、思考與總結(jié)

(1)書寫存儲語句時(shí),應(yīng)注意涉及的表格和屬性名應(yīng)與創(chuàng)建表格時(shí)相同(2)注意區(qū)分中英文符號,避免出現(xiàn)符號無法識別以及程序沒有結(jié)尾等錯誤(3)注意空格的使用,避免出現(xiàn)缺少或多余的空格,造成語法錯誤

五、附:實(shí)驗(yàn)完整源代碼

1、CREATE OR REPLACE PROCEDURE PRO_借書功能(VAL_借閱流水號 IN 借閱.借閱流水號%TYPE, VAL_借書證號 IN 借閱.借書證號%TYPE, VAL_圖書編號 IN 借閱.圖書編號%TYPE)AS BEGIN INSERT INTO 借閱(借閱流水號,借書證號,圖書編號,借書日期)VALUES(VAL_借閱流水號,VAL_借書證號,VAL_圖書編號,TO_CHAR(SYSDATE(),'YYYY/MM/DD'));UPDATE 圖書 SET 是否借出='是' WHERE 圖書.圖書編號 =VAL_圖書編號;DBMS_OUTPUT.PUT_LINE(' 本次借書操作完成!');END;

2、CREATE OR REPLACE PROCEDURE PRO_預(yù)約功能(Y_預(yù)約流水號 IN 預(yù)約.預(yù)約流水號%TYPE, Y_借書證號 IN 預(yù)約.借書證號%TYPE, Y_ISBN IN 圖書.ISBN%TYPE)AS Y_NUMBER BINARY_INTEGER;BEGIN SELECT COUNT(*)INTO Y_NUMBER FROM 圖書 WHERE 圖書.ISBN=Y_ISBN AND 圖書.是否借出='否';IF Y_NUMBER=0 THEN INSERT INTO 預(yù)約(預(yù)約流水號,借書證號,ISBN,預(yù)約時(shí)間)VALUES(Y_預(yù)約流水號,Y_借書證號,Y_ISBN,TO_CHAR(SYSDATE(),'YYYY/MM/DD'));DBMS_OUTPUT.put_line('可執(zhí)行預(yù)約!');ELSE DBMS_OUTPUT.put_line('該書可借,請查找!');END IF;END;

3、CREATE OR REPLACE PROCEDURE PRO_還書功能(VAL_借書證號 IN 借閱.借書證號%TYPE, VAL_圖書編號 IN 借閱.圖書編號%TYPE, 4 VAL_罰款分類號 IN 借閱.罰款分類號%TYPE)AS VAL_TIME DATE;BEGIN SELECT SYSDATE INTO VAL_TIME FROM DUAL;UPDATE 借閱 SET 歸還日期=VAL_TIME WHERE 借書證號 =VAL_借書證號 AND 借閱.圖書編號=VAL_圖書編號;UPDATE 圖書 SET 是否借出='否' WHERE 圖書.圖書編號 =VAL_圖書編號;UPDATE 借閱 SET 罰款分類號=VAL_罰款分類號 WHERE 借書證號 =VAL_借書證號 AND 借閱.圖書編號=VAL_圖書編號;DBMS_OUTPUT.PUT_LINE(' 本次還書操作完成!END;

');

數(shù)據(jù)庫原理及應(yīng)用實(shí)驗(yàn)報(bào)告

實(shí)驗(yàn)名稱:觸發(fā)器 實(shí)驗(yàn)類型:驗(yàn)證型 實(shí)驗(yàn)環(huán)境:oracle 11g 指導(dǎo)教師:陳 駿 專業(yè)班級:信安1505班 姓

名:李 維 學(xué)

號:5120155364 聯(lián)系電話:*** 電子郵件: 實(shí)驗(yàn)地點(diǎn):東6E501 實(shí) 驗(yàn) 日 期: 2017年5月10日實(shí)驗(yàn)報(bào)告日期:2017年 5月 10日

成績:__________________________

一、實(shí)驗(yàn)?zāi)康?/p>

(1)了解觸發(fā)器的概念、優(yōu)點(diǎn)(2)掌握觸發(fā)器的方法和步驟(3)掌握觸發(fā)器的使用

四、實(shí)驗(yàn)平臺

Oracle 11g

五、實(shí)驗(yàn)步驟、出現(xiàn)的問題及解決方案(不能解決的將問題列出)(3)實(shí)驗(yàn)步驟

1)通過序列和觸發(fā)器實(shí)現(xiàn)借閱表中借閱流水號字段的自動遞增。

2)通過序列和觸發(fā)器實(shí)現(xiàn)預(yù)約表中預(yù)約流水號字段的自動遞增

3)修改實(shí)驗(yàn)三借書功能的存儲過程。

該存儲過程要求: ? 借書時(shí)輸入借書證號,圖書編號。(即該函數(shù)有2個輸入?yún)?shù))

? 借書時(shí),借書日期為系統(tǒng)時(shí)間。

*該存儲過程主體部分只有insert into語句。

4)建立與借書存儲過程相對應(yīng)的觸發(fā)器,當(dāng)借閱表中加入借閱信息時(shí),該觸發(fā)器觸發(fā),自動修改所借圖書的是否借出改為‘是’。

5)修改實(shí)驗(yàn)三還書功能的存儲過程。

該存儲過程要求:

? 還書時(shí)輸入借書證號,圖書編號。(即該函數(shù)有2個輸入?yún)?shù))? 還書時(shí),還書日期為系統(tǒng)時(shí)間。

*該存儲過程主體部分只有一條UPDATE語句。

6)建立與還書存儲過程相對應(yīng)的觸發(fā)器,當(dāng)借閱表中填入還書日期時(shí),該觸發(fā)器觸發(fā),自動修改所還圖書的是否借出為‘否’。

2(4)問題及解決方案

1)問題一:步驟一中無法識別“seq_id”標(biāo)識符 原因:未創(chuàng)建seq_id序列 解決方案:先創(chuàng)建該序列

2)問題二:步驟3無法執(zhí)行

原因:已創(chuàng)建的table中無“借書”項(xiàng)

解決方案:將原代碼中的“借書”改為“借閱” 3)問題三:步驟二中出現(xiàn)無法識別的符號 原因:將英文分號誤寫為中文分號 解決方案:修正為英文分號“;” 4)問題四:

原因:變量賦值過程中使用了錯誤的賦值語句 解決方案:將bnum改為圖書編號

五、思考與總結(jié)

(4)在創(chuàng)建trigger之前應(yīng)先創(chuàng)建sequence,避免出現(xiàn)序列號無法識別的錯誤(5)書寫存儲語句時(shí),應(yīng)注意涉及的表格和屬性名應(yīng)與創(chuàng)建表格時(shí)相同(6)注意區(qū)分中英文符號,避免出現(xiàn)符號無法識別以及程序沒有結(jié)尾等錯誤(7)注意區(qū)別where和having的用法

(8)注意空格的使用,避免出現(xiàn)缺少或多余的空格,造成語法錯誤

六、附:實(shí)驗(yàn)源代碼

(1)create sequence seq_借閱 start with 8 increment by 1 nomaxvalue nocycle nocache;create or replace trigger tr_借閱流水號 before insert on 借閱 for each row

begin

select seq_借閱.nextval into :new.借閱流水號 from dual;

end;

(2)create sequence seq_預(yù)約 start with 8 increment by 1 nomaxvalue nocycle nocache;create or replace trigger tr_預(yù)約流水號 before insert on 預(yù)約 for each row

begin

select seq_預(yù)約.nextval into :new.預(yù)約流水號 from dual;

end;

(3)create or replace procedure p_borrow_book_xg(p_jszh in number,p_tsbh in number)as v_sfjc 圖書.是否借出%type;begin

select 是否借出 into v_sfjc from 圖書 where 圖書編號=p_tsbh;

if v_sfjc='否' then

insert into 借閱(借書證號,圖書編號,借書日期)

values(p_jszh,p_tsbh,to_date(to_char(sysdate,'YYYY/MM/DD'),'YYYY/MM/DD'));

--update 圖書 set 是否借出='是' where 圖書編號=p_tsbh;

commit;

else

dbms_output.put_line('該圖書已經(jīng)借出!');

end if;end;(4)create or replace trigger tr_借書 before insert on 借閱 for each row

begin

if inserting then

update 圖書 set 是否借出='是' where 圖書編號=:new.圖書編號;

select seq_借閱.nextval into :new.借閱流水號 from dual;

end if;

end;(5)create or replace procedure p_return_圖書(p_借書證號 in number,p_圖書編號 in number)as begin

update 借閱 set 歸還日期=to_date(to_char(sysdate,'YYYY/MM/DD'),'YYYY/MM/DD'),罰款分類號=p_罰款分類號 where 借書證號=p_借書證號 and 圖書編號=p_圖書編號;

update 圖書 set 是否借出='否' where 圖書編號=p_圖書編號;

commit;

end;(6)create or replace trigger tr_還書

after update

on 借閱

for each row begin

if updating then

update 圖書 set 是否借出 = '否' where 圖書編號 = :new.圖書編號;

end if;end;

第五篇:數(shù)據(jù)庫原理實(shí)驗(yàn)教案

《數(shù)據(jù)庫原理》課程實(shí)驗(yàn)

實(shí)驗(yàn)1 創(chuàng)建數(shù)據(jù)庫和數(shù)據(jù)表

一、實(shí)驗(yàn)?zāi)康?/p>

熟悉SQL Server Management Studio界面;掌握通過圖形化向?qū)Ш蛨?zhí)行Transact-SQL語句創(chuàng)建數(shù)據(jù)庫的方法。

二、實(shí)驗(yàn)環(huán)境

Windows XP操作系統(tǒng),SQL Server 2005軟件。

三、實(shí)驗(yàn)課時(shí)

2課時(shí)。

四、實(shí)驗(yàn)內(nèi)容

SQL Server中的一個數(shù)據(jù)庫必須至少包含一個數(shù)據(jù)文件和一個事務(wù)日志文件,所以創(chuàng)建數(shù)據(jù)庫就是建立主數(shù)據(jù)文件和日志文件。

在SQL Server 2005中創(chuàng)建數(shù)據(jù)庫的方法主要有兩種:一是在SQL Server Management Studio窗口中使用可視化界面,通過方便的圖形化向?qū)?chuàng)建,二是通過執(zhí)行Transact-SQL語句創(chuàng)建。

(一)向?qū)Х绞絼?chuàng)建

1、從“開始”菜單選擇“所有程序”→“Microsoft SQL Server 2005”,打開“SQL Server Management Studio”窗口,使用Windows或SQL Server身份驗(yàn)證建立連接。

2、在“對象資源管理器”窗格中展開服務(wù)器,選擇“數(shù)據(jù)庫”節(jié)點(diǎn)右擊,從彈出的快捷菜單中選擇“新建數(shù)據(jù)庫”命令,打開“新建數(shù)據(jù)庫”窗口。

3、該窗口中有3個頁,分別是“常規(guī)”、“選項(xiàng)”和“文件組”,完成這3個頁的內(nèi)容即可完成數(shù)據(jù)庫的創(chuàng)建。這里,我們僅設(shè)置“常規(guī)”的相應(yīng)內(nèi)容,其他2個頁的內(nèi)容按照默認(rèn)設(shè)置即可。

(1)“數(shù)據(jù)庫名稱”文本框中輸入數(shù)據(jù)庫的名稱,如“sample_st”,再輸入該數(shù)據(jù)庫的所有者,這里使用默認(rèn)值即可。(也可以通過單擊文本框右邊的“瀏覽”按鈕選擇所有者。

(2)“數(shù)據(jù)庫文件”列表中包括兩行,一個是數(shù)據(jù)文件,一個是日志文件。通過單擊下面相應(yīng)的按鈕可以添加或刪除相應(yīng)的數(shù)據(jù)文件。

? 邏輯名稱:指定該文件的文件名。

? 文件類型:用于區(qū)別當(dāng)前文件是數(shù)據(jù)文件還是日志文件。? 文件組:顯示當(dāng)前數(shù)據(jù)庫文件所屬的文件組。

? 初始大小:指定該文件的初始容量。在SQL Server 2005中數(shù)據(jù)文件的默認(rèn)值為3MB,日志文件的默認(rèn)值為1MB。? 自動增長:用于設(shè)置在文件容量不夠用時(shí),文件根據(jù)何種增長方式自動增長。

? 路徑:指定存放在文件的目錄。默認(rèn)情況下,SQL Server 2005將存放路徑設(shè)置為其安裝目錄下的data子目錄,單擊該列中的按鈕可以在打開的“定位文件夾”對話框中更改數(shù)據(jù)庫的存儲路徑。

完成上述操作后,單擊“確定”按鈕關(guān)閉“新建數(shù)據(jù)庫”窗口,即完成了數(shù)據(jù)庫的創(chuàng)建,可以在“對象資源管理器”窗格中看到新建的數(shù)據(jù)庫。

(二)語言方式創(chuàng)建

SQL Server 2005使用的Transact-SQL語言是標(biāo)準(zhǔn)SQL的增強(qiáng)版本,使用它提供的Create Database語句同樣可以完成對數(shù)據(jù)庫的建立(參考內(nèi)容見附錄)。

1、單擊“新建查詢”按鈕,創(chuàng)建一個查詢輸入窗口將附錄中的語句復(fù)制到該窗口。選擇創(chuàng)建數(shù)據(jù)庫的命令,單擊工具欄中的“分析”按鈕,可以檢查語法錯誤;單擊“執(zhí)行”按鈕即可執(zhí)行語句,在查詢窗口內(nèi)的“查詢”窗格中可以看到“命令已成功完成”的提示消息。在“對象資源管理器”窗格中刷新,即可看到新建的數(shù)據(jù)庫。

2、繼續(xù)執(zhí)行Create Database之后的語句,在“sample_st”數(shù)據(jù)庫中用Create Table命令依次建立Student、Course和SC這三個數(shù)據(jù)表,并建立各自的約束及它們之間的聯(lián)系(外鍵),利用Insert命令為各數(shù)據(jù)表添加數(shù)據(jù)。

(三)知識鞏固

用SQL-DDL語言創(chuàng)建“產(chǎn)品訂購”數(shù)據(jù)庫,包含四個數(shù)據(jù)表S、P、J和SPJ,表結(jié)構(gòu)及內(nèi)容見教材P122。

實(shí)驗(yàn)2 數(shù)據(jù)庫的簡單查詢

一、實(shí)驗(yàn)?zāi)康?/p>

掌握單表查詢中各個子句(Select、From、Where、Group、Having、Order)的用法,特別要掌握比較運(yùn)算符和邏輯運(yùn)算符的使用。

二、實(shí)驗(yàn)環(huán)境

Windows XP操作系統(tǒng),SQL Server 2005軟件。

三、實(shí)驗(yàn)課時(shí)

2課時(shí)。

四、實(shí)驗(yàn)內(nèi)容

在已建立的數(shù)據(jù)庫和數(shù)據(jù)表的基礎(chǔ)上,用Select語句完成下列查詢操作。

1、查詢?nèi)w學(xué)生的學(xué)號和姓名。

2、查詢?nèi)w學(xué)生的所有基本信息(僅針對Student表)。

3、對SC表查詢?nèi)w學(xué)生的選課記錄,在顯示結(jié)果中為“Grade”列增加5分。

4、查詢?nèi)w學(xué)生的學(xué)號和姓名,將原來的英文列名設(shè)置中文別名。

5、顯示所有選課學(xué)生的學(xué)號,去掉重復(fù)結(jié)果。

6、查詢成績在80分以上的學(xué)生選課記錄。

7、查詢經(jīng)濟(jì)系所有學(xué)生的學(xué)號和姓名。

8、查詢成績在80~90分的學(xué)生選課記錄。

9、查詢年齡不在22~25的學(xué)生記錄。

10、查詢所有姓“劉”的學(xué)生記錄。

11、查詢無考試成績(成績?yōu)榭罩担┑膶W(xué)號、課程號。

12、查詢考試成績非空值的學(xué)號、課程號。

13、查詢數(shù)學(xué)系年齡小于20歲的學(xué)生記錄。

14、查詢選修了“101”或“102”課程的選課記錄。

15、查詢學(xué)生總?cè)藬?shù)。

16、查詢選修了課程的學(xué)生人數(shù)。

17、查詢選修了“101”課程的學(xué)生的平均成績。

18、查詢學(xué)號為“01003”的學(xué)生的考試總成績。

19、查詢“101”課程的最高分和最低分。20、查詢每門課程的選課人數(shù)。

21、查詢每個學(xué)生的學(xué)號、選課數(shù)、平均成績和總成績。

22、查詢選課數(shù)超過2的學(xué)生學(xué)號及其選課數(shù)。

23、查詢所有學(xué)生信息,查詢結(jié)果按年齡降序排列。(針對Student表操作)

24、查詢所有學(xué)生信息,查詢結(jié)果按系名升序,同系學(xué)生按年齡降序排列。

25、查詢選課數(shù)超過2的學(xué)生學(xué)號及其選課數(shù),查詢結(jié)果按選課數(shù)降序排列。

實(shí)驗(yàn)3 數(shù)據(jù)庫的多表查詢

一、實(shí)驗(yàn)?zāi)康?/p>

繼續(xù)熟練SQL-SELECT語句的使用;理解多表查詢的概念;掌握多表連接查詢中各個子句的用法,特別要比較內(nèi)連接和外連接的結(jié)果。掌握非相關(guān)子查詢、相關(guān)子查詢的用法,理解它們的執(zhí)行過程;學(xué)會在SQL Server中用Exists實(shí)現(xiàn)交運(yùn)算,用Not Exists實(shí)現(xiàn)差運(yùn)算。

二、實(shí)驗(yàn)環(huán)境

Windows XP操作系統(tǒng),SQL Server 2005軟件。

三、實(shí)驗(yàn)課時(shí)

2課時(shí)。

四、實(shí)驗(yàn)內(nèi)容

(一)、在已建立的數(shù)據(jù)庫和數(shù)據(jù)表的基礎(chǔ)上,用Select語句的連接查詢完成下列操作。

1、查詢每個學(xué)生的基本信息及其選課情況。

2、查詢選修“101”課程的學(xué)生學(xué)號、姓名和成績。

3、查詢與“李平”在同一個系學(xué)習(xí)的學(xué)生記錄。

4、查詢與“李平”年齡相同的學(xué)生記錄。

5、查詢選修課程名為“數(shù)據(jù)庫原理”的選課記錄。

6、查詢選修課程名為“數(shù)據(jù)庫原理”的學(xué)生記錄。

7、查詢選修“101”課程且成績≥90的學(xué)號、姓名和成績。

8、查詢“李平”的所有選課記錄。

9、查詢數(shù)學(xué)系學(xué)生選修的課程號,要求結(jié)果中去掉重復(fù)記錄。

10、查詢計(jì)算機(jī)系選修課程數(shù)≥2的學(xué)號、姓名及平均成績,查詢結(jié)果按平均成績降序。

11、查詢每個學(xué)生的學(xué)號、選修課程號、課程名及成績。

12、查詢所有學(xué)生的選修情況(包括選課和未選課的學(xué)生),要求顯示學(xué)號、姓名、課程號和成績。

(二)、在已建立的數(shù)據(jù)庫和數(shù)據(jù)表的基礎(chǔ)上,用Select語句的嵌套查詢完成下列操作(含EXISTS量詞)。

1、查詢選修“101”課程且成績≥90的學(xué)號、姓名。

2、查詢“李平”的所有選課記錄。

3、查詢與“李平”在同一個系學(xué)習(xí)的學(xué)生記錄。

4、查詢與“李平”年齡相同的學(xué)生記錄。

5、查詢選修課程名為“數(shù)據(jù)庫原理”的選課記錄,輸出結(jié)果包括學(xué)號和成績。

6、查詢選修課程名為“數(shù)據(jù)庫原理”的學(xué)生記錄,輸出結(jié)果包括學(xué)號、姓名和所在系。

7、查詢學(xué)號為“01003”學(xué)生的選修課程號和課程名。

8、查詢沒有選修“101”課程的學(xué)生學(xué)號和姓名。

9、查詢選修“101”課程或“102”課程的學(xué)生姓名。

10、查詢選修“101”課程和“102”課程的學(xué)生學(xué)號。

11、查詢選修“101”課程但沒選修“102”課程的學(xué)生學(xué)號。

12、查詢沒有選修任何課程的學(xué)生記錄,輸出結(jié)果包括學(xué)號、姓名和所在系。

13、查詢數(shù)學(xué)系學(xué)生選修的課程號,要求結(jié)果中去掉重復(fù)記錄。

14、查詢選修課程至少包含“01003”選修課程的學(xué)生學(xué)號。實(shí)驗(yàn)4 數(shù)據(jù)庫更新、視圖定義及使用

一、實(shí)驗(yàn)?zāi)康?/p>

掌握Insert、Update、Delete語句的使用;對于Insert語句,要求理解默認(rèn)值約束、空值約束在插入記錄時(shí)所起的作用。理解視圖的概念,掌握Create View、Drop View等語句的使用;掌握基于視圖的查詢語句的使用。

二、實(shí)驗(yàn)環(huán)境

Windows XP操作系統(tǒng),SQL Server 2005軟件。

三、實(shí)驗(yàn)課時(shí)

2課時(shí)。

四、實(shí)驗(yàn)內(nèi)容

(一)、在已建立的數(shù)據(jù)庫和數(shù)據(jù)表的基礎(chǔ)上,向數(shù)據(jù)庫中添加一個臨時(shí)表ST(sno,sname,dept,sage,cno,cname,score)。用Insert語句向臨時(shí)表輸入數(shù)據(jù),輸入有誤時(shí)用Update語句進(jìn)行修改。再用三個更新語句完成下列操作。

1、向Student表添加若干新記錄,內(nèi)容自定。(觀察已定義的表的約束情況)

2、向SC表添加新記錄,內(nèi)容自定,不低于10條(注意不能違反參照完整性)。

3、為臨時(shí)表ST添加記錄。

4、把Student表的所有行及其對應(yīng)的選課一次性地加到臨時(shí)表ST中。

5、在ST表中把所有學(xué)生的成績加2分。

6、在ST表中把所有學(xué)生的年齡增加1。

7、在ST表中把“李平”的所在系改為“計(jì)算機(jī)”。

8、在ST表中將選修課程“數(shù)據(jù)庫原理”的學(xué)生成績加2分。

9、在SC表中刪除所有成績?yōu)榭罩档倪x修記錄。

10、刪除計(jì)算機(jī)系選修成績不及格的選課記錄。

(二)、在已建立的數(shù)據(jù)庫和數(shù)據(jù)表的基礎(chǔ)上,完成下列操作。

1、建立數(shù)學(xué)系學(xué)生的視圖MAST。

2、建立計(jì)算機(jī)系選修課程名為“數(shù)據(jù)庫原理”的學(xué)生視圖,視圖名:CSTVIEW,該視圖中應(yīng)包括屬性列:學(xué)號、姓名、成績。

3、創(chuàng)建一個名為STSUMVIEW的視圖,包括所有學(xué)生的學(xué)號和總成績。

4、建立學(xué)生選課視圖SCVIEW,包括所有學(xué)生的學(xué)號、姓名、課程號、課程名和成績。

5、通過MAST視圖查詢學(xué)生基本信息。

6、通過SCVIEW查詢成績大于90分的學(xué)生的學(xué)號和成績。

7、查詢計(jì)算機(jī)系選修課程名為“數(shù)據(jù)庫原理”并且成績大于85分的學(xué)生的學(xué)號和成績。

8、通過MAST視圖將學(xué)號為“01008”學(xué)生的年齡修改為21歲。

9、通過MAST視圖將學(xué)號為“01009”學(xué)生所在系改為“經(jīng)濟(jì)”,是否能成功執(zhí)行?若不能成功請說明理由;若修改成功,請?jiān)俅瓮ㄟ^MAST視圖查詢學(xué)生基本信息,是否能查詢到該生?若不能查詢請說明理由。

10、通過SCVIEW視圖將學(xué)號為“01004”學(xué)生的總成績修改為380分,是否能成功執(zhí)行?若不能成功請說明理由。

實(shí)驗(yàn)5 數(shù)據(jù)庫的安全與保護(hù)

一、實(shí)驗(yàn)?zāi)康?/p>

理解SQL Server的用戶與權(quán)限管理機(jī)制,掌握用對象資源管理器創(chuàng)建服務(wù)器登錄帳號,并同時(shí)建立用戶。掌握如何為給定的用戶分配權(quán)限。

二、實(shí)驗(yàn)環(huán)境

Windows XP操作系統(tǒng),SQL Server 2005軟件。

三、實(shí)驗(yàn)課時(shí)

2課時(shí)。

四、實(shí)驗(yàn)內(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身份登錄來驗(yàn)證權(quán)限分配成功。

(3)使用Test1身份登錄,收回剛剛分配給Test2的創(chuàng)建數(shù)據(jù)表的權(quán)限;用Test2身份登錄來驗(yàn)證權(quán)限回收成功。

五、實(shí)驗(yàn)步驟

1、使用對象資源管理器創(chuàng)建兩個服務(wù)器登錄帳號。以系統(tǒng)管理員身份登錄SQL Server。打開“SQL Server Management Studio”窗口,在對象資源管理器列表中,打開展開“安全性”文件夾,選擇“登錄名”圖標(biāo),單擊鼠標(biāo)右鍵,在彈出的菜單中選擇“新建登錄名”。在打開的對話框中依次建立Test1和Test2,選擇“SQL Server身份驗(yàn)證”,同時(shí)還要輸入密碼,默認(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)建。

2、創(chuàng)建新的數(shù)據(jù)庫用戶。

在對象資源管理器中選中要訪問操作的數(shù)據(jù)庫,展開“安全性”文件夾,在“用戶”文件夾中查找是否已建立與登錄名Test1和Test2同名的數(shù)據(jù)庫用戶,若已建立,則在屬性中修改其默認(rèn)架構(gòu)為guest;否則右擊鼠標(biāo)在菜單中選擇“新建用戶”選項(xiàng),出現(xiàn)“數(shù)據(jù)庫用戶-新建”對話框,建立相應(yīng)的用戶。

3、用Grant、Revoke命令實(shí)現(xiàn)對用戶的授權(quán)和收權(quán)。

4、用Create命令創(chuàng)建數(shù)據(jù)表驗(yàn)證授權(quán)和收權(quán)是否成功。

5、以系統(tǒng)管理員身份登錄SQL Server。使用:“GRANT SELECT ON SC TO Test1 WITH GRANT OPTION”命令,再分別以Test1和Test2身份登錄,進(jìn)行授權(quán)及查詢數(shù)據(jù)表,驗(yàn)證“WITH GRANT OPTION”能否成功執(zhí)行。

6、以系統(tǒng)管理員身份使用“REVOKE”命令回收上述授權(quán)。

實(shí)驗(yàn)6 數(shù)據(jù)庫的事務(wù)及并發(fā)控制

一、實(shí)驗(yàn)?zāi)康?/p>

通過實(shí)驗(yàn)加深學(xué)生對事務(wù)的基本概念理解語掌握;加深學(xué)生對并發(fā)控制的基本概念理解,認(rèn)識不正確的并發(fā)控制所帶來的危害;加深學(xué)生對鎖的基本概念的掌握與理解,認(rèn)識鎖帶來的問題;

二、實(shí)驗(yàn)環(huán)境

Windows XP操作系統(tǒng),SQL Server 2005軟件。

三、實(shí)驗(yàn)課時(shí)

2課時(shí)。

四、實(shí)驗(yàn)內(nèi)容

1、事務(wù)的控制

數(shù)據(jù)準(zhǔn)備:執(zhí)行如下命令Select * into ##temp from student,將student的數(shù)據(jù)倒入到##temp表中。? 啟動事務(wù),執(zhí)行刪除后,回滾事務(wù)

? ? ? ? ? ? 選擇##temp的數(shù)據(jù),察看記錄總數(shù) 顯式啟動事務(wù) 刪除##temp表的數(shù)據(jù)

選擇##temp數(shù)據(jù),察看記錄總數(shù) 回滾事務(wù)

選擇##temp數(shù)據(jù),察看記錄總數(shù)

? 啟動事務(wù),執(zhí)行刪除后,提交事務(wù)

?

選擇##temp數(shù)據(jù),察看記錄總數(shù) ? ? ? ? ? 顯式啟動事務(wù) 刪除##temp表的數(shù)據(jù)

選擇##temp的數(shù)據(jù),察看記錄總數(shù) 回滾事務(wù)

選擇##temp數(shù)據(jù),察看記錄總數(shù)

比較這兩次執(zhí)行效果的差異,為什么會有這些差異?

2、事務(wù)的隔離級別試驗(yàn)

數(shù)據(jù)準(zhǔn)備:執(zhí)行如下命令Select * into ##temp from student,將student的數(shù)據(jù)倒入到##temp表中。? 臟讀

? 啟動兩個分析器,分別叫(A,B)

? 在A中,選擇##temp表中數(shù)據(jù),察看記錄總數(shù) ? 在A中,顯式啟動事務(wù) ? 在A中,刪除##temp表的數(shù)據(jù)

? 在B中,將事務(wù)隔離級別設(shè)為UNCOMMITTED ? 在該查詢分析器中選擇##temp表數(shù)據(jù),察看記錄總數(shù) ? 回到先前窗口,回滾事務(wù) ? 選擇##temp數(shù)據(jù),察看記錄總數(shù) ? 再次切查詢分析器窗口

? 選擇##temp數(shù)據(jù),察看記錄總數(shù) 觀察結(jié)果,為什么會有這些現(xiàn)象? ? 不可重復(fù)讀

? 啟動兩個分析器,分別叫(A,B)

? 在A中,顯式啟動事務(wù),察看dept = 'math'的記錄(注意地址中的數(shù)據(jù))

? 在B中,顯式啟動事務(wù),察看dept = 'math'的記錄。在B中,將dept = 'math’地址更新為’AAAAAA’

? 在B中,再次察看dept = 'math'的記錄。在B中,提交事務(wù) ? 在A中,再次察看dept = 'math'的記錄。? 在A中,提交事務(wù)

觀察結(jié)果,為什么會有這些現(xiàn)象? ? 丟失修改

? 啟動兩個查詢分析器,分別叫(A,B)

? 在A中,顯式啟動事務(wù),察看dept = 'math'的記錄(注意地址中的數(shù)據(jù))

? 在B中,顯式啟動事務(wù),察看dept = 'math'的記錄。? 在B中,將dept = 'math’地址更新為’AAAAAA’ ? 在B中,再次察看dept = 'math'的記錄。? 在B中,提交事務(wù)

? 在A中,再次察看dept = 'math'的記錄。? 在A中,將dept = 'math’地址更新為’BBBBBB’ ? 在A中,提交事務(wù)

? 在A,B窗口分別察看dept = 'math’的記錄,結(jié)果如何? ? 鎖的模擬

? 啟動兩個分析器,分別叫(A,B)

? 在A中,顯式啟動事務(wù),察看dept = 'math'的記錄 ? 在B中,顯式啟動事務(wù),察看dept = 'math'的記錄 ? 在B中,將dept = 'math’地址更新為’AAAAAA’ ? 在A中,將dept = 'math’地址更新為’BBBBBB’ 觀察A窗口的結(jié)果,為什么?

事務(wù)隔離級別設(shè)置:set transaction isolation level {read committed, read uncommitted, repeatable read, serializable}

實(shí)驗(yàn)7 數(shù)據(jù)庫設(shè)計(jì)實(shí)驗(yàn)

一、實(shí)驗(yàn)?zāi)康?/p>

通過實(shí)驗(yàn)掌握數(shù)據(jù)庫設(shè)計(jì)的基本方法和步驟。

二、實(shí)驗(yàn)環(huán)境

Windows XP操作系統(tǒng),SQL Server 2005軟件。

三、實(shí)驗(yàn)課時(shí)

2課時(shí)。

四、實(shí)驗(yàn)內(nèi)容

1、選定實(shí)驗(yàn)題目,為某個單位或部門設(shè)計(jì)數(shù)據(jù)庫應(yīng)用系統(tǒng),比如:學(xué)生成績管理、機(jī)房上機(jī)管理、職工檔案管理、商品庫存管理、圖書管理、工資管理等。

2、根據(jù)選定的題目進(jìn)行需求分析,重點(diǎn)分析數(shù)據(jù)需求和功能需求。

3、概念結(jié)構(gòu)設(shè)計(jì):畫出E-R圖。步驟如下:

(1)設(shè)計(jì)局部E-R圖。設(shè)計(jì)依據(jù)是需求分析階段的DFD/DD。主要內(nèi)容是確定實(shí)體集合、聯(lián)系、屬性及主關(guān)鍵字

(2)集成局部E-R圖。集成時(shí)要解決沖突和冗余等問題。(3)合并局部E-R圖。合并局部E-R圖中相同部分,盡可能的保留特殊部分,刪除冗余部分,用累加的方式集成若干個局部E-R圖。

(4)優(yōu)化全局E-R圖,得到最佳的全局E-R圖方案。

4、邏輯結(jié)構(gòu)設(shè)計(jì):設(shè)計(jì)數(shù)據(jù)庫和數(shù)據(jù)表的具體結(jié)構(gòu),指出各表的屬性名稱、數(shù)據(jù)類型;說明各表的主碼及表之間的關(guān)聯(lián)情況;說明本設(shè)計(jì)是否已達(dá)到3NF要求。

5、簡要評價(jià)系統(tǒng)設(shè)計(jì)的優(yōu)點(diǎn)和不足。

五、實(shí)驗(yàn)要求

1、提交設(shè)計(jì)報(bào)告,涵蓋實(shí)驗(yàn)內(nèi)容的全部信息,不低于1000字。

2、提交建立應(yīng)用系統(tǒng)數(shù)據(jù)庫的代碼,所有數(shù)據(jù)表中的記錄總數(shù)不低于50條。

實(shí)驗(yàn)8 存儲過程實(shí)驗(yàn)

一、實(shí)驗(yàn)?zāi)康?/p>

通過實(shí)驗(yàn)熟悉使用存儲過程進(jìn)行數(shù)據(jù)庫應(yīng)用程序設(shè)計(jì)的方法

二、實(shí)驗(yàn)環(huán)境

Windows XP操作系統(tǒng),SQL Server 2005軟件。

三、實(shí)驗(yàn)課時(shí)

2課時(shí)。

四、實(shí)驗(yàn)內(nèi)容

對sample_st數(shù)據(jù)庫,編寫存儲過程,完成下面功能

1、統(tǒng)計(jì)任意一門課程的平均成績

2、統(tǒng)計(jì)所有課程的平均成績

3、統(tǒng)計(jì)任意一門課程的成績分布情況,即按照分?jǐn)?shù)段統(tǒng)計(jì)人數(shù)(即<60、60-69、70-79、80-89、90以上)

下載數(shù)據(jù)庫原理實(shí)驗(yàn)五word格式文檔
下載數(shù)據(jù)庫原理實(shí)驗(yàn)五.doc
將本文檔下載到自己電腦,方便修改和收藏,請勿使用迅雷等下載。
點(diǎn)此處下載文檔

文檔為doc格式


聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶自發(fā)貢獻(xiàn)自行上傳,本網(wǎng)站不擁有所有權(quán),未作人工編輯處理,也不承擔(dān)相關(guān)法律責(zé)任。如果您發(fā)現(xiàn)有涉嫌版權(quán)的內(nèi)容,歡迎發(fā)送郵件至:645879355@qq.com 進(jìn)行舉報(bào),并提供相關(guān)證據(jù),工作人員會在5個工作日內(nèi)聯(lián)系你,一經(jīng)查實(shí),本站將立刻刪除涉嫌侵權(quán)內(nèi)容。

相關(guān)范文推薦

    數(shù)據(jù)庫原理實(shí)驗(yàn)學(xué)期總結(jié)

    2010-2011學(xué)年第1學(xué)期《數(shù)據(jù)庫原理實(shí)驗(yàn)》學(xué)期論文 數(shù)據(jù)庫原理實(shí)驗(yàn)學(xué)期總結(jié) 我的題目: 班級:_______________學(xué)號:_______________姓名:_______________ 摘要 不少于100字 關(guān)鍵字......

    數(shù)據(jù)庫原理與應(yīng)用實(shí)驗(yàn)教案

    實(shí)驗(yàn)報(bào)告格式 《數(shù)據(jù)庫原理》實(shí)驗(yàn)報(bào)告 ? (實(shí)驗(yàn)名稱:) ?? 專業(yè) ? 班級級()班 ? 學(xué)號 ? 學(xué)生姓名 ? 指導(dǎo)老師 ? 攀枝花計(jì)算機(jī)學(xué)院 年月日 ? 一、實(shí)驗(yàn)?zāi)康?? 本次實(shí)驗(yàn)所涉及并要求掌握的知識......

    (2008版)數(shù)據(jù)庫原理實(shí)驗(yàn)5指導(dǎo)書

    一 實(shí)驗(yàn)題目:視圖的定義和使用 二 實(shí)驗(yàn)?zāi)康模杭由顚σ晥D的理解,熟練視圖的定義、查看、修改等操作 三 實(shí)驗(yàn)內(nèi)容及要求:(從下面10個題目中選一個) 題目一: 學(xué)生(學(xué)號,年齡,性別,系名) 課程......

    數(shù)據(jù)庫原理實(shí)驗(yàn)學(xué)期總結(jié)[推薦5篇]

    2012-2013學(xué)年第1學(xué)期《數(shù)據(jù)庫原理實(shí)驗(yàn)》學(xué)期論文 數(shù)據(jù)庫原理實(shí)驗(yàn)學(xué)期總結(jié) 班級: 學(xué)號: 姓名: 摘要: 學(xué)習(xí)數(shù)據(jù)庫已經(jīng)一個學(xué)期了,經(jīng)過這一個學(xué)期對SQL Server 2005課程的學(xué)習(xí),使......

    數(shù)據(jù)庫原理及技術(shù)實(shí)驗(yàn)報(bào)告-實(shí)驗(yàn)10

    《數(shù)據(jù)庫原理及技術(shù)》實(shí)驗(yàn)報(bào)告 姓名: 莫鴻斌學(xué)號:201601030137 班級:2016級計(jì)算機(jī)科學(xué)與技術(shù) 實(shí)驗(yàn)日期: 2018-3-9 一、實(shí)驗(yàn)項(xiàng)目 數(shù)據(jù)庫備份與恢復(fù)、數(shù)據(jù)的導(dǎo)入導(dǎo)出 二、實(shí)驗(yàn)?zāi)?.....

    數(shù)據(jù)庫原理及技術(shù)實(shí)驗(yàn)報(bào)告-實(shí)驗(yàn)11

    《數(shù)據(jù)庫原理及技術(shù)》實(shí)驗(yàn)報(bào)告 姓名:莫鴻斌 學(xué)號:201601030137 班級:2016級計(jì)算機(jī)科學(xué)與技術(shù) 實(shí)驗(yàn)日期: 2018-3-23 一、實(shí)驗(yàn)項(xiàng)目 T-SQL創(chuàng)建修改數(shù)據(jù)庫和表 二、實(shí)驗(yàn)?zāi)康?1. 掌......

    數(shù)據(jù)庫原理與運(yùn)用實(shí)驗(yàn)教案

    數(shù)據(jù)庫原理與運(yùn)用 實(shí)驗(yàn)教案 實(shí)驗(yàn)班級:數(shù)媒09 實(shí)驗(yàn)教師: 盧震輝2011年3月 數(shù)據(jù)庫原理與運(yùn)用實(shí)驗(yàn)教學(xué) 數(shù)據(jù)庫技術(shù)是計(jì)算機(jī)科學(xué)中發(fā)展最快的領(lǐng)域之一,也是應(yīng)用最廣的技術(shù)之一,......

    數(shù)據(jù)庫實(shí)驗(yàn)

    實(shí)驗(yàn)1.1 使用SQL Server工具(Microsoft SQL Server Management Studio Express)管理數(shù)據(jù)庫 1 實(shí)驗(yàn)內(nèi)容: (1) 使用SSMS(SQL Server Management Studio)加入實(shí)驗(yàn)數(shù)據(jù)庫。 (2)......

主站蜘蛛池模板: 日韩在线一区二区三区免费视频| 国产精品国产亚洲区艳妇糸列短篇| 亚洲欧美激情在线一区| 一区二区三区波多野结衣在线观看| 亚洲妇熟xxxx妇色黄| 亚洲久久久久久中文字幕| 人妻夜夜爽天天爽三区| 日日摸处处碰夜夜爽| 在线精品国精品国产尤物| 无码人妻丰满熟妇a片护士| 亚洲中文字幕精品久久| 久久久久久亚洲精品无码| 欧美人成精品网站播放| 国产微拍精品一区二区| 日韩精品无码人成视频| 99久久精品无码一区二区毛片| 亚洲精品乱码久久久久久不卡| 国产精品兄妹在线观看麻豆| 55夜色66夜色国产精品视频| 亚洲精品乱码久久久久久| 亚洲精品第一国产综合亚av| 加勒比一本heyzo高清视频| 99视频精品国产免费观看| 蜜臀av性久久久久蜜臀aⅴ| 无码一区二区三区久久精品| 污污污www精品国产网站| 100国产精品人妻无码| 久久人人爽人人爽人人片dvd| 激情国产av做激情国产爱| 国产精品久久久久久久久齐齐| 国产成人久久久精品二区三区| 国产亚洲欧洲日韩在线...| 国产精品午夜在线观看体验区| b站永久免费看片大全| 无码av中文字幕久久专区| 少妇粗大进出白浆嘿嘿视频| 久久精品国产国产精| 麻豆精品一卡二卡三卡| 国产内射爽爽大片| 国产互换人妻hd| 国模无码人体一区二区|