數(shù)據(jù)庫實驗報告 (4)

上傳人:痛*** 文檔編號:146675884 上傳時間:2022-08-31 格式:DOC 頁數(shù):10 大小:346.87KB
收藏 版權(quán)申訴 舉報 下載
數(shù)據(jù)庫實驗報告 (4)_第1頁
第1頁 / 共10頁
數(shù)據(jù)庫實驗報告 (4)_第2頁
第2頁 / 共10頁
數(shù)據(jù)庫實驗報告 (4)_第3頁
第3頁 / 共10頁

下載文檔到電腦,查找使用更方便

10 積分

下載資源

還剩頁未讀,繼續(xù)閱讀

資源描述:

《數(shù)據(jù)庫實驗報告 (4)》由會員分享,可在線閱讀,更多相關(guān)《數(shù)據(jù)庫實驗報告 (4)(10頁珍藏版)》請在裝配圖網(wǎng)上搜索。

1、 一 實驗題目 1.索引的建立和刪除操作 2.視圖的創(chuàng)建、修改、更新和查詢操作 二 實驗?zāi)康? 1.掌握數(shù)據(jù)庫索引建立與刪除操作,掌握數(shù)據(jù)庫索引的分類,并了解建立數(shù)據(jù)庫索引的意義、作用。 2.掌握視圖的創(chuàng)建和查詢操作,理解視圖的使用,理解實圖在數(shù)據(jù)庫安全性中的作用。 三 實驗內(nèi)容 1. 索引的建立和刪除操作 (1) 在S表中,建立按照sno升序的惟一性索引snoIDX。 (2) 在SC表中,建立按照學(xué)號升序和課程號降序的唯一性索引scIDX。 (3) 在S表中,按照生日建立一個非聚簇索引birthdayIDX。 (4) 在C表中,建立一個按照課程名升序的聚簇索引cn

2、ameIDX。 (5) 刪除索引cnameIDX。 2. 視圖的創(chuàng)建、修改、更新和查詢操作 (1) 建立一個關(guān)于所有女生信息的視圖S_GIRL。 (2) 將各系學(xué)生人數(shù),平均年齡定義為視圖V_NUM_AVG (3) 建立一個視圖反映學(xué)生所選課程的總學(xué)分情況TOTAL_CREDIT。 (4) 建立一個所有學(xué)生課程成績的視圖S_GRADE,包括基本學(xué)生信息,課程信息和成績。 (5) 在視圖S_GRADE基礎(chǔ)之上,建立一個兩門課以上成績不及格的學(xué)生情況視圖FAIL_GRADE。 (6) 建立一個至少選修了4門課及4門課以上的學(xué)生信息的視圖SC_FOUR。 (7) 修改視圖S

3、_GIRL,要求只顯示1997年以前出生的女生信息。 (8) 在視圖FAIL_GRADE查詢不及格超過2門課的學(xué)生信息。 (9) 刪除視圖S_GRADE。 (10) 通過視圖S_GIRL,將“王丹”的名字修改為“汪丹”,并查詢結(jié)果。 (11) 通過視圖S_GIRL,新增一個學(xué)生信息(“劉蘭蘭”,“女”,“計算機學(xué)院”,1996-8-8),并查詢結(jié)果。 (12) 通過視圖S_GIRL,刪除1995年出生的女生信息,并查詢結(jié)果。 (13) 通過視圖S_GRADE,將“汪丹”的名字修改為“王丹”,是否可以實現(xiàn),請說明原因。 (14) 通過視圖COMPUTE_AVG_GRADE,將“

4、4121090301”學(xué)生的平均分改為90分,是否可以實現(xiàn),請說明原因。 四 實驗要求 1. 要求掌握索引的類型,以及創(chuàng)建索引時的注意事項,例如每個表只能創(chuàng)建一個聚集索引,可以創(chuàng)建非聚集索引最多為249個,等等。 2. 理解創(chuàng)建視圖的目的和意義。掌握創(chuàng)建視圖時需要考慮的原則:只能在當前數(shù)據(jù)庫中創(chuàng)建視圖、視圖名不得與該用戶的表名相同、可在視圖上建立視圖、定義視圖不能包括ORDER BY等關(guān)鍵字、不能建立臨時視圖,等等。 3. 報告中由同學(xué)寫明具體的操作意圖(文字描述)、操作命令(SQL語句)、和執(zhí)行結(jié)果(文字描述+適當截圖)。 4. 對于重要的運行界面和結(jié)果窗口,可以用A

5、lt+PrintScreen來截取當前窗口,并粘貼到實驗報告中。 五 實驗步驟: 1. 索引的建立和刪除操作 2. 在S表中,建立按照sno升序的惟一性索引snoIDX。 create unique index snoIDX on S(Sno asc); 運行結(jié)果: 命令已成功完成。 結(jié)果顯示如圖1: 圖表 1 建立索引snoIDX 3. 在SC表中,建立按照學(xué)號升序和課程號降序的唯一性索引scIDX。 代碼:create index scIDX on SC(Sno asc,Cno desc); 運行結(jié)果: 命令已成功完成。 結(jié)果顯示如圖2:

6、 圖表 2在SC表建立索引scIDX。 4. 在S表中,按照生日建立一個非聚簇索引birthdayIDX。 代碼:create NONCLUSTERED index birthdayIDX on S(Sbirthday asc); 運行結(jié)果: 命令已成功完成。 顯示結(jié)果如圖3所示 圖表 3建立索引birthdayIDX 5. 在C表中,建立一個按照課程名升序的聚簇索引cnameIDX。 代碼:create CLUSTERED index cnameIDX on C(Cno asc); 運行結(jié)果: 命令已成功完成。 顯示結(jié)果如圖4: 圖表 4按照課

7、程名升序的聚簇索引cnameIDX。 6. 刪除索引cnameIDX。 代碼:drop index C.cnameIDX 運行結(jié)果: 命令已成功完成。 顯示結(jié)果如圖5,無索引,被刪除: 圖表 5 7. 視圖的創(chuàng)建、修改、更新和查詢操作 8. 建立一個關(guān)于所有女生信息的視圖S_GIRL。 create view S_GIRL as select * from S where S.Ssex='女'; 運行結(jié)果: 服務(wù)器: 消息 170,級別 15,狀態(tài) 1,過程 S_GIRL,行 3 第 3 行: ';' 附近有語法錯誤。 刪除“;

8、” 代碼: create view S_GIRL as select * from S where Ssex='女' 運行結(jié)果: 命令已成功完成。 查詢顯示結(jié)果: select * from S_GIRL 符合條件的結(jié)果如下圖6所示: 圖表 6 9. 將各系學(xué)生人數(shù),平均年齡定義為視圖V_NUM_AVG 代碼:create view V_NUM_AVG as select count(Sno) ,avg(Sage),Sdept from S group by Sdept 運行結(jié)果: 服務(wù)器: 消息 4511,級別 16,狀態(tài) 1,過程

9、 V_NUM_AVG,行 1 創(chuàng)建視圖或函數(shù)失敗,因為沒有為第 1 列指定列名。 正確代碼: create view V_NUM_AVG as select count(Sno) DeptNum ,avg(Sage) Dept,Sdept from S group by Sdept 運行結(jié)果: 命令已成功完成。 顯示結(jié)果 select * from V_NUM_AVG 如圖7所示DeptNum為各系學(xué)生人數(shù),Dep為平均年齡 圖表 7 10. 建立一個視圖反映學(xué)生所選課程的總學(xué)分情況TOTAL_CREDIT。 代

10、碼:create view TOTAL_CREDIT as select Sno, sum(Ccredit) as total_credit from SC join C on C.Cno=SC.Cno group by Sno 運行結(jié)果: 命令已成功完成。 顯示結(jié)果如圖8所示TOTAL_CREDIT為學(xué)生所選課程的總學(xué)分情況: 圖表 8 11. 建立一個所有學(xué)生課程成績的視圖S_GRADE,包括基本學(xué)生信息,課程信息和成績。 create view S_GRADE as select S.Sno,S.Sname,C.Cname,C.Ccredit,SC.Gr

11、ade from SC ,C,S where S.Sno=SC.Sno and SC.Cno=C.Cno 運行結(jié)果: 命令已成功完成。 顯示結(jié)果: select * from S_GRADE 結(jié)果如圖9所示:基本信息,課程信息和成績 圖表 9 12. 在視圖S_GRADE基礎(chǔ)之上,建立一個兩門課以上成績不及格的學(xué)生情況視圖FAIL_GRADE。 代碼:create view FAIL_GRADE as select Sno,count(*)SnoNum from S_GRADE where Grade<60 group by Sno havi

12、ng count(*)>=2 運行結(jié)果: 命令已成功完成。 查詢視圖符合條件的結(jié)果:select * from FAIL_GRADE 如下圖所示,沒有符合選修兩門且不及格的學(xué)生信息 圖表 10 13. 建立一個至少選修了2門課及2門課以上的學(xué)生信息的視圖SC_FOUR。 代碼:create view SC_FOUR as select Sno,count(*)CnoNum from SC group by Sno having count(*)>=2 運行結(jié)果: 命令已成功完成。 查詢視圖符合條件的結(jié)果:select * from

13、SC_FOUR 顯示結(jié)果如下圖11:學(xué)號為0001得學(xué)生選修3門,0002學(xué)生和0003學(xué)生選修了3門; 圖表 11 查詢四門以上,數(shù)據(jù)庫中沒有符合條件的學(xué)生 14. 修改視圖S_GIRL,要求只顯示1997年以前出生的女生信息。 代碼:alter view S_GIRL select * from S where Ssex='女'and Sbirthday<='1997-1-1' 運行結(jié)果: 服務(wù)器: 消息 156,級別 15,狀態(tài) 1,過程 S_GIRL,行 2 在關(guān)鍵字 'select' 附近有語法錯誤。 修改后代碼:少了AS,修改視圖同A

14、LTER alter view S_GIRL as select * from S where Ssex='女'and Sbirthday<='1997-1-1' 運行結(jié)果: 命令已成功完成。 顯示結(jié)果學(xué)生都滿足1997年之前: 圖表 12 15. 在視圖FAIL_GRADE查詢不及格超過2門課的學(xué)生信息。 代碼:select * from FAIL_GRADE where SnoNum>2 運行結(jié)果: 命令已成功完成。 顯示結(jié)果:在視圖FAIL_GRADE不存在不及格超過2門課; 圖表 13 16. 刪除視圖S_GRADE。 修

15、改前數(shù)據(jù)庫中存在的視圖14如下圖所示: 圖表 14 代碼:drop view S_GRADE 刪除視圖后,數(shù)據(jù)庫中存在的視圖如下圖15所示:不存在S_GRADE視圖 圖表 15 17. 通過視圖S_GIRL,將“王思”的名字修改為“汪思”,并查詢結(jié)果。 修改前:視圖S_GIRL基本情況如下圖所示: 圖表 16 代碼: alter view S_GIRL as set Sname='汪思'where Sname='王思' 運行結(jié)果: 服務(wù)器: 消息 156,級別 15,狀態(tài) 1,過程 S_GIRL,行 4 在關(guān)鍵字 'set' 附近有語法錯誤。

16、 語句錯誤:應(yīng)用update ,update 后不用加view as 正確代碼: update S_GIRL set Sname='汪思'where Sname='王思' 運行結(jié)果: (所影響的行數(shù)為 1 行) 顯示結(jié)果如圖17紅色標記所示: 圖表 17 18. 通過視圖S_GIRL,新增一個學(xué)生信息(“劉蘭蘭”,“女”,“計算機學(xué)院”,1996-8-8),并查詢結(jié)果。 代碼: insert into S_GIRL (Sno,Sname,Ssex,Sbirthday,Sdept) values ('0020','劉蘭蘭','女','1996-8-8

17、','計算機') 運行結(jié)果: (所影響的行數(shù)為 1 行) 結(jié)果顯示如圖: 19. 通過視圖S_GIRL,刪除1996年出生的女生信息,并查詢結(jié)果。 運行前信息如上圖所示: 代碼:delete S_GIRL where Sbirthday<='1996-12-31' and Sbirthday>='1996-1-1' 運行結(jié)果: (所影響的行數(shù)為 1 行) 顯示結(jié)果如下圖:標記所示信息被刪除 20. 通過視圖S_GRADE,將“汪思”的名字修改為“王思”,是否可以實現(xiàn),請說明原因 代碼:update S_GRADE set

18、 Sname='王思' where Sname='汪思' 運行結(jié)果: (所影響的行數(shù)為1 行) 顯示結(jié)果: 若是基于多個表的視圖、涉及關(guān)鍵字段則不能修改表信息 21. 通過視圖COMPUTE_AVG_GRADE,將“0001”學(xué)生的平均分改為90分,是否可以實現(xiàn),請說明原因。 創(chuàng)建視圖: 代碼:create view COMPUTE_AVG_GRADE as select SC.Sno,avg(SC.Grade)AS 平均成績 from SC,C,S where S.Sno=SC.Sno and SC.Cno=C.Cno group by SC.Sno

19、顯示視圖信息; 修改視圖:代碼:update COMPUTE_AVG_GRADE set 平均成績='91' where Sno='0001' 運行結(jié)果: 服務(wù)器: 消息 4403,級別 16,狀態(tài) 1,行 1 視圖或函數(shù) 'COMPUTE_AVG_GRADE' 不可更新,因為它包含聚合。 視圖不能修改數(shù)據(jù)。 關(guān)于可更新視圖有以下三條規(guī)則: (1) 若視圖是基于多個表使用聯(lián)接操作而導(dǎo)出的,那么對這個視圖執(zhí)行更新操作時,每次只能影響其中的一個表。 (2) 若視圖導(dǎo)出時包含有分組和聚合操作,則不允許對這個視圖執(zhí)行更新操作。 (3) 若視圖是從一個表經(jīng)選擇、投影而導(dǎo)出的,并在視圖中包含了表的主鍵字或某個候選鍵,這類視圖稱為‘行列子集視圖’。對這類視圖可執(zhí)行更新操作。 上題不能修改,因為視圖導(dǎo)出時包含有分組和聚合操作,不允許對這個視圖執(zhí)行更新操作

展開閱讀全文
溫馨提示:
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)容負責。
6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

相關(guān)資源

更多
正為您匹配相似的精品文檔
關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話:18123376007

備案號:ICP2024067431-1 川公網(wǎng)安備51140202000466號


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務(wù)平臺,本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請立即通知裝配圖網(wǎng),我們立即給予刪除!