第一篇:數(shù)據(jù)庫實驗指導(dǎo)書
實驗一:數(shù)據(jù)定義及更新語句練習(xí)
一、實驗?zāi)康模菏炀氄莆沼肧QL語句實現(xiàn)數(shù)據(jù)庫和基本表的創(chuàng)建、數(shù)據(jù)的更新。
二、預(yù)習(xí)要求:實驗前復(fù)習(xí)講授過的有關(guān)創(chuàng)建數(shù)據(jù)庫、基本表的SQL語句,預(yù)習(xí)SQL Server2000環(huán)境,特別是資源管理器和查詢分析器的相關(guān)用法。
三、實驗內(nèi)容:
(一)用SQL語句建立如下mySPJ數(shù)據(jù)庫,包括S,P,J,和SPJ四個基本表(教材第二章習(xí)題5中的四個表),要求實現(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)組成。
工程項目表J由工程項目代碼(JNO)、工程項目名(JNAME)、工程項目所在城市(CITY)組成。
供應(yīng)情況表SPJ由供應(yīng)商代碼(SNO)、零件代碼(PNO)、工程項目代碼(JNO)、供應(yīng)數(shù)量(QTY)組成,表示某供應(yīng)商 供應(yīng)某種零件 給某工程項目的數(shù)量為QTY。
(二)分別使用插入、刪除、修改的方式更新基本表中的數(shù)據(jù)。
四、實驗方法和步驟:
(一)使用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語句,點擊執(zhí)行按鈕(或F5鍵)執(zhí)行該SQL語句;
4.在企業(yè)管理器左邊的樹標(biāo)簽中查看數(shù)據(jù)庫是否建立成功。
(二)在數(shù)據(jù)庫mySPJ中建立S,P,J,和SPJ四個基本表:
按照實驗內(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è)定關(guān)鍵字時彈出的頁面中有關(guān)鍵字和索引選項,試通過給基本表設(shè)定這兩個項目并說明二者的區(qū)別。
(二)在基本表中輸入數(shù)據(jù)時,注意數(shù)據(jù)與字段的數(shù)據(jù)類型和長度以及能否為空的屬性是否一致,保存時如有錯誤分析錯誤原因,及時改正并將錯誤報告寫在實驗報告中。
六、實驗報告要求:
(一)實驗?zāi)康模菏炀氄莆沼肧QL語句實現(xiàn)數(shù)據(jù)庫和基本表的創(chuàng)建、數(shù)據(jù)的更新。
(二)實驗內(nèi)容:需要創(chuàng)建的數(shù)據(jù)庫及其四個基本表:零件表、供應(yīng)商表、工程表、供應(yīng)關(guān)系表的表結(jié)構(gòu)、創(chuàng)建過程。
(三)完成情況(附上設(shè)計的SQL語句)。
(四)實驗結(jié)果:如果是查詢語句,將查詢結(jié)果記錄列出來,其它可以不寫。
(五)問題及解決:首先寫出執(zhí)行語句不成功的時候系統(tǒng)報告的錯誤信息。然后分析錯誤原因,并給出解決辦法。
(六)回答思考題提出的問題,(七)實驗總結(jié):心得體會,建議等。
實驗二:簡單查詢和連接查詢
一、實驗?zāi)康模菏炀氄莆沼肧QL語句實現(xiàn)的簡單查詢和多個數(shù)據(jù)表連接查詢。
二、預(yù)習(xí)要求:實驗前復(fù)習(xí)講授過的有關(guān)簡單查詢與多表查詢的知識,編寫相應(yīng)的SQL語句。
三、實驗內(nèi)容:
(一)完成下面的簡單查詢:
①查詢所有“天津”的供應(yīng)商明細(xì);
②查詢所有“紅色”的14公斤以上的零件。
③查詢工程名稱中含有“廠”字的工程明細(xì)。
(二)完成下面的連接查詢:
①等值連接:求s表和j表的相同城市的等值連接。
②自然連接:查詢所有的供應(yīng)明細(xì),要求顯示供應(yīng)商、零件和工程的名稱,并按照供應(yīng)、工程、零件排序。
③笛卡爾積:求s和p表的笛卡爾積
④左連接:求j表和spj表的左連接。
⑤右連接:求spj表和j表的右連接。
四、實驗方法和步驟:
參照實驗一中給出的使用Microsoft SQL Server企業(yè)管理器和SQL查詢分析器的方法,將實驗內(nèi)容中所要求的查詢項目依次用SQL語句實現(xiàn),并記錄下執(zhí)行結(jié)果。
五、思考題:
查看實驗內(nèi)容2中左連接和右連接的執(zhí)行結(jié)果是否一致,為什么?
六、實驗報告要求:
(一)實驗?zāi)康模菏炀氄莆沼肧QL語句實現(xiàn)數(shù)據(jù)庫和基本表的創(chuàng)建、數(shù)據(jù)的更新。
(二)實驗內(nèi)容:需要創(chuàng)建的數(shù)據(jù)庫及其四個基本表:零件表、供應(yīng)商表、工程表、供應(yīng)關(guān)系表的表結(jié)構(gòu)、創(chuàng)建過程。
(三)完成情況(附上設(shè)計的SQL語句)。
(四)實驗結(jié)果:如果是查詢語句,將查詢結(jié)果記錄列出來,其它可以不寫。
(五)問題及解決:首先寫出執(zhí)行語句不成功的時候系統(tǒng)報告的錯誤信息。然后分析錯誤原因,并給出解決辦法。
(六)回答思考題提出的問題,實驗總結(jié):心得體會,建議等。實驗三:分組查詢和嵌套查詢
一、實驗?zāi)康模菏炀氄莆沼肧QL語句實現(xiàn)多個數(shù)據(jù)表的分組查詢和嵌套查詢。
二、預(yù)習(xí)要求:實驗前復(fù)習(xí)講授過的有關(guān)分組查詢和嵌套查詢的知識,編寫相應(yīng)的SQL語句。
三、實驗內(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.比較運算符:求重量大于所有零件平均重量的零件名稱。
3.Exists連接謂詞:
① 查詢供應(yīng)J1的所有的零件都是紅色的供應(yīng)商名稱。
② 至少用了供應(yīng)商S1所供應(yīng)的全部零件的工程號JNO。
四、實驗方法和步驟:
參照實驗一中給出的使用Microsoft SQL Server企業(yè)管理器和SQL查詢分析器的方法,將實驗內(nèi)容中所要求的查詢項目依次用SQL語句實現(xiàn),并記錄下執(zhí)行結(jié)果。
五、思考題:
(一)嵌套查詢中的in連接謂詞查詢,關(guān)鍵字in可以直接用any代替么?什么情況下in和any可以互相代替?
(二)嵌套查詢中的內(nèi)查詢?yōu)橥獠樵兎祷氐膬?nèi)容是什么?是表達(dá)式?視圖?還是物理數(shù)據(jù)集合?
六、實驗報告要求:
(一)實驗?zāi)康模菏炀氄莆沼肧QL語句實現(xiàn)數(shù)據(jù)庫和基本表的創(chuàng)建、數(shù)據(jù)的更新。
(二)實驗內(nèi)容:需要創(chuàng)建的數(shù)據(jù)庫及其四個基本表:零件表、供應(yīng)商表、工程表、供應(yīng)關(guān)系表的表結(jié)構(gòu)、創(chuàng)建過程。
(三)完成情況(附上設(shè)計的SQL語句)。
(四)實驗結(jié)果:如果是查詢語句,將查詢結(jié)果記錄列出來,其它可以不寫。
(五)問題及解決:首先寫出執(zhí)行語句不成功的時候系統(tǒng)報告的錯誤信息。然后分析錯誤原因,并給出解決辦法。
(六)回答思考題提出的問題,(七)實驗總結(jié):心得體會,建議等。
實驗四:視圖操作和數(shù)據(jù)控制
一、實驗?zāi)康模菏炀氄莆沼肧QL語句實現(xiàn)視圖操作和數(shù)據(jù)控制。
二、預(yù)習(xí)要求:實驗前復(fù)習(xí)講授過的有關(guān)視圖操作和數(shù)據(jù)控制的知識,編寫相應(yīng)的SQL語句。
三、實驗內(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)利回收。
四、實驗方法和步驟:
參照實驗一中給出的使用Microsoft SQL Server企業(yè)管理器和SQL查詢分析器的方法,將實驗內(nèi)容中所要求的查詢項目依次用SQL語句實現(xiàn),并記錄下執(zhí)行結(jié)果。
五、思考題:
實驗內(nèi)容中的哪些視圖可以用來更新記錄?
六、實驗報告要求:
(一)實驗?zāi)康模菏炀氄莆沼肧QL語句實現(xiàn)數(shù)據(jù)庫和基本表的創(chuàng)建、數(shù)據(jù)的更新。
(二)實驗內(nèi)容:需要創(chuàng)建的數(shù)據(jù)庫及其四個基本表:零件表、供應(yīng)商表、工程表、供應(yīng)關(guān)系表的表結(jié)構(gòu)、創(chuàng)建過程。
(三)完成情況(附上設(shè)計的SQL語句)。
(四)實驗結(jié)果:如果是查詢語句,將查詢結(jié)果記錄列出來,其它可以不寫。
(五)問題及解決:首先寫出執(zhí)行語句不成功的時候系統(tǒng)報告的錯誤信息。然后分析錯誤原因,并給出解決辦法。
(六)回答思考題提出的問題。
(七)實驗總結(jié):心得體會,建議等。
實驗五:觸發(fā)器和存儲過程
一、實驗?zāi)康模豪斫庥|發(fā)器和存儲過程的含義,掌握用SQL語句實現(xiàn)觸發(fā)器和存儲過程的編寫,并初步掌握什么情況下使用事務(wù)。
二、預(yù)習(xí)要求:存儲過程和觸發(fā)器的相關(guān)概念,事務(wù)的相關(guān)概念,編寫相應(yīng)的SQL語句。
三、實驗內(nèi)容:
(一)為S表的刪除操作定義一個觸發(fā)器,在刪除一個供應(yīng)商記錄時,將這個供應(yīng)商的所有供應(yīng)情況從spj表中刪除。
(二)有一個小型的圖書管理數(shù)據(jù)庫,包含的表為:
bookstore(bookid,bookname,bookauthor,purchasedate,state);--圖書庫存表
borrowcard(cardid,ownername);--借書證表
borrowlog(cardid,bookid,borrowdate,returndate);--借書記錄表
寫一個存儲過程,實現(xiàn)借書操作,要求有事務(wù)處理。(1)讀者借書,要先設(shè)置書籍不在庫標(biāo)志state(借出),然后增加借書記錄,在同一事務(wù)中完成。(2)要求在事務(wù)執(zhí)行過程中引入錯誤觸發(fā)事件,以此體會事務(wù)的錯誤保護(hù)機(jī)制和事務(wù)編程的作用。
四、實驗方法和步驟:
(一)在查詢分析器中編寫實現(xiàn)上述功能的觸發(fā)器,參考Create Trigger語法。
(二)參考CREATE PROCEDURE語句。在事務(wù)執(zhí)行過程中引入錯誤觸發(fā)事件,可以考慮在增加借書記錄時違反實體完整性或參照完整性,以此體會事務(wù)的錯誤保護(hù)機(jī)制。
五、思考題:
如何通過系統(tǒng)的設(shè)置實現(xiàn)類似的功能,而不需觸發(fā)器?
六、實驗報告要求:
(一)實驗?zāi)康模菏炀氄莆沼肧QL語句實現(xiàn)數(shù)據(jù)庫和基本表的創(chuàng)建、數(shù)據(jù)的更新。
(二)實驗內(nèi)容:需要創(chuàng)建的數(shù)據(jù)庫及其四個基本表:零件表、供應(yīng)商表、工程表、供應(yīng)關(guān)系表的表結(jié)構(gòu)、創(chuàng)建過程。
(三)完成情況(附上設(shè)計的SQL語句)。
(四)實驗結(jié)果:如果是查詢語句,將查詢結(jié)果記錄列出來,其它可以不寫。
(五)問題及解決:首先寫出執(zhí)行語句不成功的時候系統(tǒng)報告的錯誤信息。然后分析錯誤原因,并給出解決辦法。
(六)回答思考題提出的問題,實驗總結(jié):心得體會,建議等。
第二篇:數(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 選作題目................................................................................................................................13
實驗規(guī)則
為了順利完成實驗教學(xué)任務(wù),確保人身設(shè)備安全,培養(yǎng)嚴(yán)謹(jǐn)、踏實、實事求是的科學(xué)作風(fēng)和愛護(hù)國家財產(chǎn)的優(yōu)良品質(zhì),特制定以下實驗規(guī)則:
1、實驗紀(jì)律
(1)在實驗室不得做和實驗無關(guān)的事情。(2)遵守紀(jì)律,不遲到,不曠課。
(3)不能拆卸硬件,更不能拿走實驗設(shè)備或儀器。(4)保持實驗室安靜、整潔,愛護(hù)公物。
2、實驗過程
(1)預(yù)習(xí)實驗內(nèi)容。自行設(shè)計SQL語句。
(2)上機(jī)操作。每執(zhí)行一句記錄執(zhí)行情況,主要是錯誤信息和錯誤原因。(3)檢查操作結(jié)果是否正確。
(4)根據(jù)實驗過程的記錄書寫實驗報告。
實驗報告要求
1、報告用紙 采用統(tǒng)一的河南科技大學(xué)實驗報告用紙,不得用別的紙張代替。
2、實驗報告封面內(nèi)容
實驗名稱:(如實驗一 數(shù)據(jù)庫創(chuàng)建)班級名稱:(如計科101班)學(xué)生學(xué)號: 學(xué)生姓名: 實驗時間:
3、實驗報告內(nèi)容
見各具體實驗項目的要求。
基本實驗方法
本實驗要求熟悉SQL Server環(huán)境和數(shù)據(jù)庫的相關(guān)知識。
實驗環(huán)境
Microsoft SQL Server2012 2 實驗一:數(shù)據(jù)定義及更新語句練習(xí)一、二、實驗?zāi)康模菏炀氄莆沼肧QL語句實現(xiàn)數(shù)據(jù)庫和基本表的創(chuàng)建、數(shù)據(jù)的更新。預(yù)習(xí)要求:實驗前復(fù)習(xí)講授過的有關(guān)創(chuàng)建數(shù)據(jù)庫、基本表的SQL語句,預(yù)習(xí)SQL Server2000環(huán)境,特別是資源管理器和查詢分析器的相關(guān)用法。
三、實驗內(nèi)容:
(一)用SQL語句建立如下mySPJ數(shù)據(jù)庫,包括S,P,J,和SPJ四個基本表(教材第二章習(xí)題5中的四個表),要求實現(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)組成。
工程項目表J由工程項目代碼(JNO)、工程項目名(JNAME)、工程項目所在城市(CITY)組成。
供應(yīng)情況表SPJ由供應(yīng)商代碼(SNO)、零件代碼(PNO)、工程項目代碼(JNO)、供應(yīng)數(shù)量(QTY)組成,表示某供應(yīng)商 供應(yīng)某種零件 給某工程項目的數(shù)量為QTY。
(二)分別使用插入、刪除、修改的方式更新基本表中的數(shù)據(jù)。
四、實驗方法和步驟:
(一)使用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語句,點擊執(zhí)行按鈕(或F5鍵)執(zhí)行該SQL 3 語句;
4.在企業(yè)管理器左邊的樹標(biāo)簽中查看數(shù)據(jù)庫是否建立成功。
(二)在數(shù)據(jù)庫mySPJ中建立S,P,J,和SPJ四個基本表:
按照實驗內(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è)定關(guān)鍵字時彈出的頁面中有關(guān)鍵字和索引選項,試通過給基本表設(shè)定這兩個項目并說明二者的區(qū)別。
(二)在基本表中輸入數(shù)據(jù)時,注意數(shù)據(jù)與字段的數(shù)據(jù)類型和長度以及能否為空的屬性是否一致,保存時如有錯誤分析錯誤原因,及時改正并將錯誤報告寫在實驗報告中。
六、實驗報告要求:
(一)實驗?zāi)康模?二)實驗內(nèi)容:
(三)完成情況(附上設(shè)計的SQL語句)。
(四)實驗結(jié)果:如果是查詢語句,將查詢結(jié)果記錄列出來,其它可以不寫。(五)問題及解決:首先寫出執(zhí)行語句不成功的時候系統(tǒng)報告的錯誤信息。然后分析錯誤原因,并給出解決辦法。(六)回答思考題提出的問題,(七)實驗總結(jié):心得體會,建議等。
實驗二:簡單查詢和連接查詢
一、實驗?zāi)康模菏炀氄莆沼肧QL語句實現(xiàn)的簡單查詢和多個數(shù)據(jù)表連接查詢。
二、預(yù)習(xí)要求:實驗前復(fù)習(xí)講授過的有關(guān)簡單查詢與多表查詢的知識,編寫相應(yīng)的SQL語句。
三、實驗內(nèi)容:
(一)完成下面的簡單查詢:
①查詢所有“天津”的供應(yīng)商明細(xì); ②查詢所有“紅色”的14公斤以上的零件。③查詢工程名稱中含有“廠”字的工程明細(xì)。(二)完成下面的連接查詢:
①等值連接:求s表和j表的相同城市的等值連接。
②自然連接:查詢所有的供應(yīng)明細(xì),要求顯示供應(yīng)商、零件和工程的名稱,并按照供應(yīng)、工程、零件排序。
③笛卡爾積:求s和p表的笛卡爾積 ④左連接:求j表和spj表的左連接。⑤右連接:求spj表和j表的右連接。
四、實驗方法和步驟:
參照實驗一中給出的使用Microsoft SQL Server企業(yè)管理器和SQL查詢分析器的方法,將實驗內(nèi)容中所要求的查詢項目依次用SQL語句實現(xiàn),并記錄下執(zhí)行結(jié)果。
五、思考題:
查看實驗內(nèi)容2中左連接和右連接的執(zhí)行結(jié)果是否一致,為什么?
六、實驗報告要求:(一)實驗?zāi)康模?二)實驗內(nèi)容:
5(三)完成情況(附上設(shè)計的SQL語句)。
(四)實驗結(jié)果:如果是查詢語句,將查詢結(jié)果記錄列出來,其它可以不寫。(五)問題及解決:首先寫出執(zhí)行語句不成功的時候系統(tǒng)報告的錯誤信息。然后分析錯誤原因,并給出解決辦法。(六)回答思考題提出的問題,(七)實驗總結(jié):心得體會,建議等。實驗三:分組查詢和嵌套查詢
一、實驗?zāi)康模菏炀氄莆沼肧QL語句實現(xiàn)多個數(shù)據(jù)表的分組查詢和嵌套查詢。
二、預(yù)習(xí)要求:實驗前復(fù)習(xí)講授過的有關(guān)分組查詢和嵌套查詢的知識,編寫相應(yīng)的SQL語句。
三、實驗內(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.比較運算符:求重量大于所有零件平均重量的零件名稱。3.Exists連接謂詞:
① 查詢供應(yīng)J1的所有的零件都是紅色的供應(yīng)商名稱。② 至少用了供應(yīng)商S1所供應(yīng)的全部零件的工程號JNO。
四、實驗方法和步驟:
參照實驗一中給出的使用Microsoft SQL Server企業(yè)管理器和SQL查詢分析器的方法,將實驗內(nèi)容中所要求的查詢項目依次用SQL語句實現(xiàn),并記錄下執(zhí)行結(jié)果。
五、思考題:
(一)嵌套查詢中的in連接謂詞查詢,關(guān)鍵字in可以直接用any代替么?什么情況下in和any可以互相代替?
(二)嵌套查詢中的內(nèi)查詢?yōu)橥獠樵兎祷氐膬?nèi)容是什么?是表達(dá)式?視圖?還是物理數(shù)據(jù)集合?
六、實驗報告要求:(一)實驗?zāi)康模?二)實驗內(nèi)容:
(三)完成情況(附上設(shè)計的SQL語句)。
(四)實驗結(jié)果:如果是查詢語句,將查詢結(jié)果記錄列出來,其它可以不寫。(五)問題及解決:首先寫出執(zhí)行語句不成功的時候系統(tǒng)報告的錯誤信息。然后分析錯誤原因,并給出解決辦法。(六)回答思考題提出的問題,(七)實驗總結(jié):心得體會,建議等。
實驗四:視圖操作和數(shù)據(jù)控制
一、實驗?zāi)康模菏炀氄莆沼肧QL語句實現(xiàn)視圖操作和數(shù)據(jù)控制。
二、預(yù)習(xí)要求:實驗前復(fù)習(xí)講授過的有關(guān)視圖操作和數(shù)據(jù)控制的知識,編寫相應(yīng)的SQL語句。
三、實驗內(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)利回收。
四、實驗方法和步驟:
參照實驗一中給出的使用Microsoft SQL Server企業(yè)管理器和SQL查詢分析器的方法,將實驗內(nèi)容中所要求的查詢項目依次用SQL語句實現(xiàn),并記錄下執(zhí)行結(jié)果。
五、思考題:
實驗內(nèi)容中的哪些視圖可以用來更新記錄?
六、實驗報告要求:(一)實驗?zāi)康模?二)實驗內(nèi)容:
(三)完成情況(附上設(shè)計的SQL語句)。
(四)實驗結(jié)果:如果是查詢語句,將查詢結(jié)果記錄列出來,其它可以不寫。(五)問題及解決:首先寫出執(zhí)行語句不成功的時候系統(tǒng)報告的錯誤信息。然后 9 分析錯誤原因,并給出解決辦法。(六)回答思考題提出的問題,(七)實驗總結(jié):心得體會,建議等。
實驗五:觸發(fā)器和存儲過程
一、實驗?zāi)康模豪斫庥|發(fā)器和存儲過程的含義,掌握用SQL語句實現(xiàn)觸發(fā)器和存儲過程的編寫,并初步掌握什么情況下使用事務(wù)。
二、預(yù)習(xí)要求:存儲過程和觸發(fā)器的相關(guān)概念,事務(wù)的相關(guān)概念,編寫相應(yīng)的SQL語句。
三、實驗內(nèi)容:
有一個小型的圖書管理數(shù)據(jù)庫,包含的表為:
bookstore(bookid,bookname,bookauthor,purchasedate,state);--圖書庫存表
borrowcard(cardid,ownername);--借書證表
borrowlog(cardid,bookid,borrowdate,returndate);--借書記錄表 寫一個存儲過程,實現(xiàn)借書操作,要求有事務(wù)處理。(1)讀者借書,要先設(shè)置書籍不在庫標(biāo)志state(借出),然后增加借書記錄,在同一事務(wù)中完成。(2)要求在事務(wù)執(zhí)行過程中引入錯誤觸發(fā)事件,以此體會事務(wù)的錯誤保護(hù)機(jī)制和事務(wù)編程的作用。(3)要求用觸發(fā)器實現(xiàn)表的完整性控制。
四、實驗方法和步驟:
(一)在查詢分析器中創(chuàng)建包含以上三張表的數(shù)據(jù)庫。
(二)參考CREATE PROCEDURE語句和Create Trigger語句。在事務(wù)執(zhí)行過程中引入錯誤觸發(fā)事件,可以考慮在增加借書記錄時違反實體完整性或參照完整性,以此體會事務(wù)的錯誤保護(hù)機(jī)制,并用觸發(fā)器實現(xiàn)表的完整性控制。
五、思考題:
如何通過系統(tǒng)的設(shè)置實現(xiàn)類似的功能,而不需觸發(fā)器?
六、實驗報告要求:(一)實驗?zāi)康模?二)實驗內(nèi)容:
(三)完成情況(附上設(shè)計的SQL語句)。
11(四)實驗結(jié)果:如果是查詢語句,將查詢結(jié)果記錄列出來,其它可以不寫。(五)問題及解決:首先寫出執(zhí)行語句不成功的時候系統(tǒng)報告的錯誤信息。然后分析錯誤原因,并給出解決辦法。(六)回答思考題提出的問題,實驗總結(jié):心得體會,建議等。
選作題目
選作題目1:用vb,delphi或者c++builder設(shè)計一個數(shù)據(jù)庫應(yīng)用程序,實現(xiàn)一個簡單的成績管理,建立三個表:學(xué)生表S,課程表C和成績表SC。要求實現(xiàn)的功能:(1)維護(hù)學(xué)生信息;(2)維護(hù)課程信息;(3)錄入成績;(4)查詢一個學(xué)生的所有課程成績;(5)查詢每門課程的平均成績。(6)打印學(xué)生成績報表;(7)打印每門課程的平均成績報表。
選作題目2:自由結(jié)合以(5-6)人為小組完成一個數(shù)據(jù)庫系統(tǒng)設(shè)計的小課題。要求用ERWIN工具對數(shù)據(jù)庫進(jìn)行建模。
第三篇:(2008版)數(shù)據(jù)庫原理實驗5指導(dǎo)書
一 實驗題目:視圖的定義和使用
二 實驗?zāi)康模杭由顚σ晥D的理解,熟練視圖的定義、查看、修改等操作 三 實驗內(nèi)容及要求:(從下面10個題目中選一個)題目一:
學(xué)生(學(xué)號,年齡,性別,系名)課程(課號,課名,學(xué)分,學(xué)時)選課(學(xué)號,課號,成績)根據(jù)上面基本表的信息定義視圖顯示每門課的課名、選課人數(shù)、平均成績 2 觀察基本表數(shù)據(jù)變化時,視圖中數(shù)據(jù)的變化。3 利用視圖,查詢平均成績最高的學(xué)生。
題目二:
圖書(書號,書名,價格,出版社)讀者(卡號,姓名,年齡,所屬單位)借閱(書號,卡號,借閱日期)根據(jù)上面基本表的信息定義視圖顯示每本書的書名、借閱次數(shù) 2 觀察基本表數(shù)據(jù)變化時,視圖中數(shù)據(jù)的變化。3利用視圖,查詢借閱次數(shù)最多的書。
題目三:
商品(編號,品名,進(jìn)價,庫存,售價,廠商編號)顧客(卡號,姓名,電話,積分)廠商(編號,廠址,名稱、電話)
銷售(顧客卡號,商品編號,數(shù)量,日期)根據(jù)上面基本表的信息定義視圖顯示每種商品的品名、銷售數(shù)量 2 觀察基本表數(shù)據(jù)變化時,視圖中數(shù)據(jù)的變化。3利用視圖,查詢銷售數(shù)量最高的商品。
題目四:
圖書(書號,書名,作者編號,價格,出版社編號)作者(編號,姓名,電話)
出版社(編號,出版社名稱,地址)根據(jù)上面基本表的信息定義視圖顯示每個出版社的名稱、出版書的數(shù)量 2 觀察基本表數(shù)據(jù)變化時,視圖中數(shù)據(jù)的變化。3利用視圖,查詢出版書最多的出版社
題目五:
零件(編號,名稱,顏色,生產(chǎn)車間號)車間(編號,名稱,人數(shù),主任)產(chǎn)品(編號,名稱,車間編號)
使用(產(chǎn)品編號,使用零件編號,個數(shù))根據(jù)上面基本表的信息定義視圖顯示每個產(chǎn)品的編號,使用零件的編號,生產(chǎn)零件的車間號,車間主任 觀察基本表數(shù)據(jù)變化時,視圖中數(shù)據(jù)的變化。3利用視圖,查詢使用零件最多的產(chǎn)品。
題目六:
藥品(編號,名稱,價格,廠商)處方(藥品編號,數(shù)量,醫(yī)生編號)醫(yī)生(編號,姓名,科室,職稱)根據(jù)上面基本表的信息定義視圖顯示每種藥品的品名、銷售金額 2 觀察基本表數(shù)據(jù)變化時,視圖中數(shù)據(jù)的變化。3利用視圖,查詢最暢銷的藥品。
題目七:
學(xué)生(學(xué)號,年齡,性別,系名)
教材(編號,書名,出版社編號,價格)訂購(學(xué)號,書號,數(shù)量)出版社(編號,名稱,地址)根據(jù)上面基本表的信息定義視圖顯示每個學(xué)生姓名、應(yīng)繳書費 2 觀察基本表數(shù)據(jù)變化時,視圖中數(shù)據(jù)的變化。3利用視圖,查詢交費最高的學(xué)生。
題目八:
員工(編號,姓名,性別,年齡,部門編號,年薪)部門(編號,名稱,人數(shù),負(fù)責(zé)人)項目(編號,名稱,負(fù)責(zé)部門編號)根據(jù)上面基本表的信息定義視圖顯示每個部門名稱、年工資總額 2 觀察基本表數(shù)據(jù)變化時,視圖中數(shù)據(jù)的變化。3利用視圖,查詢工資額最高的部門
題目九:
帳戶(編號,姓名,余額,建立日期,儲蓄所編號)儲蓄所(編號,名稱,地址,人數(shù),所屬城市)借貸(帳戶,借貸類型,金額,日期)根據(jù)上面基本表的信息定義視圖顯示每個儲蓄所名稱、儲蓄總金額 2 觀察基本表數(shù)據(jù)變化時,視圖中數(shù)據(jù)的變化。3利用視圖,查詢儲蓄金額最高的儲蓄所。
題目十:
倉庫(編號,保管員編號,面積)
保管員(編號,姓名,年齡,電話、月薪)商品(編號,品名,倉庫編號、數(shù)量,單價)
1根據(jù)上面基本表的信息定義視圖顯示每個倉庫保管員姓名、保管商品價值總額 2 觀察基本表數(shù)據(jù)變化時,視圖中數(shù)據(jù)的變化。3利用視圖,查詢保管商品價值金額最高的保管員。
五 實驗報告要求: 給出建立視圖的步驟。給出基本表數(shù)據(jù)和視圖的內(nèi)容。給出查詢命令和測試數(shù)據(jù)、執(zhí)行結(jié)果。
第四篇:(2018版)數(shù)據(jù)庫原理實驗2指導(dǎo)書
一 實驗題目: SQL SERVER2008查詢分析器的使用
二 實驗?zāi)康模菏煜QL SERVER2008 環(huán)境,熟悉查詢分析器的使用,能夠熟練運用sql命令完成數(shù)據(jù)庫,基本表、主碼、外碼和其它必要的約束條件的定義。
三 實驗內(nèi)容及要求:(從下面10個題目中選擇一個)題目一: 利用sql建立學(xué)生信息數(shù)據(jù)庫,并定義以下基本表: 學(xué)生(學(xué)號,年齡,性別,系號)課程(課號,課名,學(xué)分,學(xué)時)選課(學(xué)號,課號,成績)
定義主碼、外碼、和年齡、學(xué)分、學(xué)分的取值范圍。在三個表中輸入若干記錄,注意如果輸入違反完整性約束條件的記錄系統(tǒng)有何反應(yīng)。
題目二: 利用sql建立圖書管理數(shù)據(jù)庫,并定義以下基本表: 圖書(書號,書名,價格,出版社)讀者(卡號,姓名,年齡,所屬單位)借閱(書號,卡號,借閱日期)
定義主碼、外碼、和年齡、價格的取值范圍。在三個表中輸入若干記錄,注意如果輸入違反完整性約束條件的記錄系統(tǒng)有何反應(yīng)。
題目三: 利用sql建立商品信息數(shù)據(jù)庫,并定義以下基本表: 商品(編號,品名,進(jìn)價,庫存,售價,廠商編號)顧客(卡號,姓名,電話,積分)
廠商(編號,廠址,名稱、電話、經(jīng)理)銷售(卡號,商品編號,數(shù)量,日期)
定義主碼、外碼、和價格、積分的取值范圍。在表中輸入若干記錄,注意如果輸入違反完整性約束條件的記錄系統(tǒng)有何反應(yīng)。
題目四: 利用sql建立圖書信息數(shù)據(jù)庫,并定義以下基本表: 圖書(書號,書名,作者編號,價格,出版社編號)作者(編號,姓名,電話)
出版社(編號,出版社名稱,地址)定義主碼、外碼、和價格的取值范圍。在三個表中輸入若干記錄,注意如果輸入違反完整性約束條件的記錄系統(tǒng)有何反應(yīng)。
題目五: 利用sql建立零件信息數(shù)據(jù)庫,并定義以下基本表: 零件(編號,名稱,顏色,生產(chǎn)車間號)車間(編號,名稱,人數(shù),主任)產(chǎn)品(編號,名稱,車間編號)
使用(產(chǎn)品編號,使用零件編號,個數(shù))
定義主碼、外碼、和人數(shù)、個數(shù)的取值范圍。在三個表中輸入若干記錄,注意如果輸入違反完整性約束條件的記錄系統(tǒng)有何反應(yīng)。
題目六: 利用sql建立藥品信息數(shù)據(jù)庫,并定義以下基本表: 藥品(編號,名稱,價格,廠商編號)處方(藥品號,數(shù)量,醫(yī)生編號)醫(yī)生(編號,姓名,科室,職稱)
定義主碼、外碼、和數(shù)量、價格的取值范圍。在三個表中輸入若干記錄,注意如果輸入違反完整性約束條件的記錄系統(tǒng)有何反應(yīng)。
題目七: 利用sql建立教材數(shù)據(jù)庫,并定義以下基本表: 學(xué)生(學(xué)號,年齡,性別,系名)教材(編號,書名,出版社編號,價格)訂購(學(xué)號,書號,數(shù)量)出版社(編號,名稱,地址)
定義主碼、外碼、和價格、數(shù)量的取值范圍。在三個表中輸入若干記錄,注意如果輸入違反完整性約束條件的記錄系統(tǒng)有何反應(yīng)。
題目八: 利用sql建立雇員信息數(shù)據(jù)庫,并定義以下基本表: 員工(編號,姓名,性別,年齡,部門編號,年薪)部門(編號,名稱,人數(shù),負(fù)責(zé)人)項目(編號,名稱,負(fù)責(zé)部門)
定義主碼、外碼、和年齡、學(xué)分、學(xué)分的取值范圍。在三個表中輸入若干記錄,注意如果輸入違反完整性約束條件的記錄系統(tǒng)有何反應(yīng)。
題目九: 利用sql建立帳戶信息數(shù)據(jù)庫,并定義以下基本表: 帳戶(編號,姓名,余額,建立日期,儲蓄所編號)儲蓄所(編號,名稱,地址,人數(shù),所屬城市)借貸(帳戶,借貸類型,金額,日期)
定義主碼、外碼、和人數(shù)、余額的取值范圍。在三個表中輸入若干記錄,注意如果輸入違反完整性約束條件的記錄系統(tǒng)有何反應(yīng)。
題目十: 利用sql建立倉庫信息數(shù)據(jù)庫,并定義以下基本表: 倉庫(編號,保管員編號,面積)
保管員(編號,姓名,年齡,電話、月薪)商品(編號,品名,倉庫編號、數(shù)量,單價)定義主碼、外碼、和年齡、面積的取值范圍。在三個表中輸入若干記錄,注意如果輸入違反完整性約束條件的記錄系統(tǒng)有何反應(yīng)。
五 實驗報告要求: 給出使用查詢分析器的步驟 2 給出建庫、建表的SQL 命令腳本 3 實驗中出現(xiàn)的問題和解決方法
第五篇:數(shù)據(jù)庫實驗
實驗1.1 使用SQL Server工具(Microsoft SQL Server Management Studio Express)管理數(shù)據(jù)庫 實驗內(nèi)容:
(1)使用SSMS(SQL Server Management Studio)加入實驗數(shù)據(jù)庫。(2)使用SSMS可視化建立、修改和刪除數(shù)據(jù)庫、表。(3)使用SSMS對數(shù)據(jù)庫進(jìn)行備份和恢復(fù)。
(4)使用SSMS對表進(jìn)行查詢、插入、修改、刪除。實驗步驟:
(1)加入School數(shù)據(jù)庫。(2)建立Test數(shù)據(jù)庫。
(3)在數(shù)據(jù)庫中建立人員表PERSON(P#,Pname,Page)。更改表設(shè)置P#為主鍵,增加屬性Ptype(類型是CHAR,長度是10)。
(4)用SSMS的查詢功能(新建查詢)對PERSON表進(jìn)行查詢、插入、修改、刪除等操作:首先插入兩條記錄;修改第二條記錄;刪除第二條記錄。(5)備份Test數(shù)據(jù)庫。(6)刪除表PERSON。(7)恢復(fù)Test數(shù)據(jù)庫。(8)刪除Test數(shù)據(jù)庫。