西北工業(yè)大學(xué)數(shù)據(jù)庫實(shí)驗(yàn)報(bào)告4_第1頁
西北工業(yè)大學(xué)數(shù)據(jù)庫實(shí)驗(yàn)報(bào)告4_第2頁
西北工業(yè)大學(xué)數(shù)據(jù)庫實(shí)驗(yàn)報(bào)告4_第3頁
西北工業(yè)大學(xué)數(shù)據(jù)庫實(shí)驗(yàn)報(bào)告4_第4頁
西北工業(yè)大學(xué)數(shù)據(jù)庫實(shí)驗(yàn)報(bào)告4_第5頁
已閱讀5頁,還剩3頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、數(shù)據(jù)庫原理實(shí)驗(yàn)報(bào)告題目:實(shí)驗(yàn)四:視圖與索引學(xué)號姓名班級日期2014302692孟玉軍10011402一. 實(shí)驗(yàn)內(nèi)容、步驟以及結(jié)果1 在Student數(shù)據(jù)庫中,利用圖形用戶界面,創(chuàng)建一個選修了“數(shù)據(jù)庫原理”課程并且是1996年出生的學(xué)生的視圖,視圖中包括學(xué)號,性別,成績?nèi)齻€信息。(5分)2 用兩種不同的SQL語句創(chuàng)建第五版教材第三章 第9題中要求的視圖(視圖名:V_SPJ)(10分,每種方法5分)。1).create view v_spjas select sno,pno,qtyfrom J,SPJwhere j.jno=spj.jno and jname='三建'2).crea

2、te view view_2as select sno,pno,qtyfrom SPJwhere jno =(select jno from j where jname ='三建') 3 用SQL語句完成第五版教材第三章 第9題中的視圖查詢(10分,每小題5分)。1).select pno,sum(qty) as sum_qtyfrom v_spjgroup by pno結(jié)果:2).select pno,qtyfrom v_spjwhere sno='S1'4 用SQL語句完成視圖的數(shù)據(jù)更新。(15分,每題5分)(1) 給視圖V_SPJ中增加一條數(shù)據(jù)。提示:-

3、SPJ表中JNO允許為空時,數(shù)據(jù)可以插入基本表,此時JNO為NULL,由于JNO為NULL,所以視圖中沒有該條數(shù)據(jù)。- SPJ表中JNO不能為空時,可以使用instead of觸發(fā)器實(shí)現(xiàn)。 :jno允許為空時: insert into v_spjvalues('S4','P3',100)結(jié)果改變:select * from v_spj沒有出現(xiàn)剛剛插入的那條數(shù)據(jù) :jno不能為空時:Jno不能為NULL設(shè)立觸發(fā)器:create trigger instead_of_insert on v_spjinstead of insert asbegin declare s

4、no char(10) declare pno char (10) declare qty int select sno=sno,pno=pno,qty=qty from inserted insert into SPJ values(sno,pno,'J1',qty) end執(zhí)行語句:insert into v_spjvalues ('S5','P4',100)結(jié)果:(2) 修改視圖V_SPJ中的任意一條數(shù)據(jù)的供應(yīng)數(shù)量。update v_spjset qty=300 where sno='S1'and pno='P1&#

5、39;修改前:修改后:(3) 刪除視圖V_SPJ中的任意一條數(shù)據(jù)(注意所創(chuàng)建視圖可以視圖消解時,才能正常刪除,否則會刪除失??;也可以考慮用instead of觸發(fā)器實(shí)現(xiàn))。創(chuàng)建instead of觸發(fā)器:create trigger instead_of_delete on v_spjinstead of delete as begin declare sno char(10) declare pno char(10) declare qty int select sno=sno,pno =pno,qty=qty from deleted delete SPJ where sno=sno an

6、d pno=pno and jno='J1' and qty =qty end 刪除前:刪除第一條數(shù)據(jù):delete from v_spjwhere sno='S1' and pno='P1'5 用圖形用戶界面對Student數(shù)據(jù)庫中C表的Cno字段創(chuàng)建一個降序排列的唯一索引,索引名稱IX_CNo。(5分)6 使用SQL語句對Student數(shù)據(jù)庫完成以下的索引操作。(15分,每題5分)(1) 在C表的CName屬性上創(chuàng)建一個非唯一性的聚簇索引,索引名IX_CName。(提示:創(chuàng)建這個聚簇索引之前,需要首先刪除C表的主鍵約束。SQL Server中

7、,給某張表指定主鍵時,會自動創(chuàng)建為主屬性一個聚簇索引。)先刪除原主鍵:alter table Cdrop constraint pk_cnocreate clustered index IX_Cname on C (cname)(2) 在SC表上創(chuàng)建一個名為IX_Cnosno的非聚簇復(fù)合索引,該索引是針對sno,cno屬性集建立的升序索引。create nonclustered index IX_cnosno on SC(cno asc ,sno asc)(3) 刪除C表的索引IX_CName。drop index C.IX_Cname7 自己設(shè)計(jì)一個實(shí)驗(yàn)驗(yàn)證索引對數(shù)據(jù)庫查詢效率的提升作用。(40分) (提示:需要數(shù)據(jù)量比較大的情況下才容易進(jìn)行對比)1).利用隨機(jī)數(shù)生成8585個數(shù)據(jù)來進(jìn)行查詢 2)未建立索引之前:查詢選修了1課程的學(xué)生的學(xué)號和成績:select sno,grade from SCwhere cno='1'此時可以通過建立索引來減少查詢開銷3).建立索引GOCREATE NONCLUSTERED INDEX <Name of Missing Index, sysname,>ON dbo.SC (cno)INCLUDE (sno,grade)GO再進(jìn)行查

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論