《數(shù)據(jù)庫實驗報告 索引和視圖》由會員分享,可在線閱讀,更多相關(guān)《數(shù)據(jù)庫實驗報告 索引和視圖(9頁珍藏版)》請在裝配圖網(wǎng)上搜索。
1、西北師范大學(xué)計算機科學(xué)與工程學(xué)院學(xué)生實驗報告學(xué) 號專業(yè)計算機科學(xué)與技術(shù)姓名課程名稱數(shù)據(jù)庫應(yīng)用與開發(fā)班級實驗名稱索引和視圖課程類型專業(yè)限選課實驗?zāi)康模涸赟QL SEVER 2005中,影響其數(shù)據(jù)庫性的因素有很多,其中最重要的一項就是設(shè)計了有效的索引。而視圖是從一個或幾個基表(或視圖)導(dǎo)出的表,與基表不同的是,視圖是一個虛擬表,視圖包含一系列帶有名稱的列和行數(shù)據(jù)。本次實驗主要練習(xí)它們的創(chuàng)建和使用。實驗內(nèi)容:1、在course表的cname列上創(chuàng)建非聚集索引IDX-cnameSQL代碼:create nonclustered INDEX IDX_cname ON course(cname)實驗結(jié)果:
2、2、在student表的studentno和classno列上創(chuàng)建唯一索引UQ-stu,若該索引已存在,則刪除后重建。然后輸出student表中的記錄,查看輸出結(jié)果的順序。SQL代碼:USE teachingGOIF EXISTS(SELECT name FROM sysindexes WHERE name=UQ_stu) DROP INDEX student.UQ_stuGOCREATE NONCLUSTERED INDEX UQ_stu ON student(studentno,classno)GOSELECT *FROM student實驗結(jié)果:3、修改UQ-stu的索引屬性,當(dāng)執(zhí)行多行
3、插入操作時出現(xiàn)重復(fù)鍵值,則忽略該記錄,且設(shè)置填充因子為80%SQL代碼:USE teachingGOALTER INDEX UQ_stu ON student REBUILD WITH (PAD_INDEX=ON,FILEFACTOR=80,IGNORE-DUP_KEY=ON)GO 實驗結(jié)果:4、創(chuàng)建一個視圖v-teacher,查詢“計算機學(xué)院”所有教師的信息SQL代碼:USE teachingGOCREATE VIEW v_teacherASSELECT *FROM teacherWHERE department=計算機學(xué)院GOSELECT *FROM v_teacher實驗結(jié)果:5、創(chuàng)建一
4、個視圖v-avgstu,查詢每個學(xué)生的學(xué)號、姓名及平均分,并且按照平均分降序排序SQL代碼:USE teachingGOCREATE VIEW v_avgstuAS SELECT TOP(100) PERCENT student.studentno,studnt.sname,AVG(score.final) AS averageFROM student,scoreWHERE student.studentno=score.studentno AND score.final IS NOT NULLGROUP BY student.studentno,student.snameORDER BY A
5、VG(score.final) DESCGOSELECT *FROM v_avgstu實驗結(jié)果:6、修改v-avgstu的視圖定義,添加WITH CHECK OPTION選項SQL代碼:USE teachingGOALTER VIEW v_avgstuASSELECT *FROM teacherWHERE department=計算機學(xué)院WITH CHECK OPTIONGO實驗結(jié)果:7、通過視圖v-avgstu向基表teacher中分別插入數(shù)據(jù)(05039,張馨月,計算機應(yīng)用,講師,計算機學(xué)院)和(06018,李誠,機械制造,副教授,機械學(xué)院),并查看插入數(shù)據(jù)的情況SQL代碼:USE tea
6、chingGOINSERT INTO v_teacherVALUES(05039,張馨月,計算機應(yīng)用,講師,計算機學(xué)院)INSERT INTO v_teacherVALUES(06018,李誠,機械制造,副教授,機械學(xué)院)SELECT *FROM v_teacherSELECT *FROM teacher 實驗結(jié)果:8、通過視圖v-teacher將基表teacher中教師編號為05039的教師職稱修改為“副教授”SQL代碼:USE teachingGOUPDATE v_teacherSET prof=副教授WHERE teacherno=05039GOSELECT *FROM teacher實驗結(jié)果:實驗總結(jié):通過本次實驗掌握了索引、統(tǒng)計信息和視圖等數(shù)據(jù)庫對象的基本概念和基本操作。實驗評語:實驗成績教師簽字9