數(shù)據(jù)庫表與視圖的基本操作試驗報告_第1頁
數(shù)據(jù)庫表與視圖的基本操作試驗報告_第2頁
數(shù)據(jù)庫表與視圖的基本操作試驗報告_第3頁
數(shù)據(jù)庫表與視圖的基本操作試驗報告_第4頁
數(shù)據(jù)庫表與視圖的基本操作試驗報告_第5頁
已閱讀5頁,還剩2頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

本文格式為Word版,下載可任意編輯——數(shù)據(jù)庫表與視圖的基本操作試驗報告學(xué)號試驗地點姓名指導(dǎo)教師專業(yè)、班級時間一、試驗?zāi)康募耙?.把握索引和視圖的基本概念和功能。2.把握利用SQLServerManagementStudio和Transact-SQL語句創(chuàng)立、維護索引的方法。3.把握SQLServerManagementStudio和Transact-SQL語句創(chuàng)立、修改視圖的方法。4.把握通過視圖查看和修改基本表中的數(shù)據(jù)。二、試驗設(shè)備(環(huán)境)及要求1、環(huán)境要求:硬件:個人電腦一臺;軟件:sqlserver2023三、試驗內(nèi)容及過程條警告信息“已忽略重復(fù)的鍵〞。有avg.查詢每門課程的課程號、課程名及選(5)利用SQLServerManagementStudio,在teching數(shù)據(jù)庫中創(chuàng)立視圖v_course_降序排序。修該課程的學(xué)生的期末成績平均分.并且按平均分①啟動SQLServerManagementsStudio,在“對象資源管理器〞窗口中展開“數(shù)據(jù)庫〞子目錄。②選中并展開數(shù)據(jù)庫teaching,右擊“視圖〞項,,從彈出的快捷菜單中選擇“新建視圖〞命令。③在彈出的“添加表〞對話框中使用Crl鍵或Shift鍵同時選擇course和score兩個表,單擊“添加〞按鈕,即可將其添加到視圖的查詢中。④單擊對話框中的“關(guān)閉〞按鈕,返回到SQLServerManagementStudio的視圖設(shè)計界面。⑤為視圖選擇包含的數(shù)據(jù)列。在關(guān)系圖窗格中選中course數(shù)據(jù)表的courseno和cname復(fù)選框,即可將這兩個數(shù)據(jù)列添加到查詢結(jié)果集內(nèi)。⑥指定查詢條件。在網(wǎng)格窗格中的“表〞組合框和“列〞組合框中分別選擇score.score.final。由于所選數(shù)據(jù)列只作為探尋子句,而不需在結(jié)果集內(nèi)顯示,因此取消對“輸出〞復(fù)選框的勾選。在“篩選器〞中輸人查詢條件ISNOTNULL。⑦指定分組依據(jù)。開啟“查詢設(shè)計器〞菜單,選擇“添加分組依據(jù)〞命令,默認狀況下,在查詢結(jié)果集內(nèi)出現(xiàn)的列course.courseno和ame將成為GROUPBY子句的一部分。對于score.final,除了作為查詢條件外,還需與聚合函數(shù)生成計算列作為查詢結(jié)果集中的組成部分,因此需將其再次添加到網(wǎng)格窗格中.并選中“輸出〞復(fù)選框,指定計算列別名為average.⑧設(shè)置排序。在網(wǎng)格窗格中將score.final數(shù)據(jù)列的排序類型設(shè)置為“降序〞,排序順序設(shè)置為1。⑨設(shè)置完成后,單擊“保存〞按鈕。在彈出的對話框中輸人視圖的名稱Vcourse.avg,單擊“確定\按鈕,即完成了創(chuàng)立視圖的操作。(6)利用TransactSQL語句在teaching數(shù)據(jù)庫中創(chuàng)立視圖Vage,查詢年齡在18周歲及以上的學(xué)生的學(xué)號、姓名、性別、出生日期和班級編號。若該視圖已存在,則刪除后重建。在查詢編輯器中輸人如下程序代碼并執(zhí)行:JSEteachingGOIPXSTSLECT*FROMsysobjectsWEREnane='VageADtype=\)DROPVIEWv_ageGCCREATEVIEWVageASSELECTstudentno,sname,sex,birthday,classnoFROMstudentWHEREyear(getdate()-year(birthday)>=18GCSEIBCT*FRON_age(7)利用TransactSQL語句在teaching數(shù)據(jù)庫中創(chuàng)立視圖Vteachercourse,包含教師編號、教師姓名、職稱、課程號、課程名和任課班級。在查詢編輯器中輸人如下程序代碼并執(zhí)行:USEteaching〞GOCREATEVIENVteacher.courseASSELECTx.teacherno,tname,prof,cname,classnoFROMteacherx,coursey,teachclasszWHERx.teacherno=z.teachernoandy.courseno=z.coursenoSELECT美FROMV_teacher.course(8)利用Transact-SQL語句修改v.age的視圖定義,添加WITHCHECKOPTION選項。①在查詢編輯器中輸人如下插人語句并執(zhí)行USEteachingGOINSERTINTOVageVALUES('16138211038','李靜’,'女’,'1998-6-3','160802*)s0SELECT*FROMv_ageSELECT*FROMstudent由于新添加記錄數(shù)據(jù)并不符合視圖定義的查詢條件,因此查看視圖v_age會發(fā)現(xiàn)新插人的記錄并不在結(jié)果集中,但通過視圖向基本表中插人數(shù)據(jù)的操作成功,在student中可以查看到新插人的記錄。②修改視圖定義的代碼如下:ALTERVIEWVageASSELECTstudentno,sname,sex,birthday,classnoFROMstudentWHEREyear(getdate())year(birthday)>=18WITHCHECKOPTION③在添加了WITHCHECKOPTION選項的視圖中執(zhí)行如下插人語句:INSERTINTOVageVALUES('16138211039,'李琳琳’,女’,'1998-6-3','160802')GCSELECT*FROMvageSELECT¥FROMstudent由于該視圖創(chuàng)立了WITHCHECKOPTION條件約束,當插人記錄時所有“年齡〞“不符合條件的記錄無法插人和修改,并顯示錯誤提醒信息:消息50級別16,狀態(tài)1,第1行標,WITHCHRCR試圖進行的插人或更新已失敗,原因是目標視圖或者目標視圖所跨越的某一視圖指定了OPTION,而該操作的一個或多個結(jié)果行又不符合CHECKOPTION約束。四、試驗結(jié)果與數(shù)據(jù)處理1.利用SQLServerManagementStudio為student表的classno字段創(chuàng)立非聚集、非唯--索引UC_.classno。2.利用Transact-SQL語句在teaching數(shù)據(jù)庫中teacher表的tname列.上創(chuàng)立非聚集唯一索引Q._tname。3.利用SQLServerManagementStudio查看索引被查詢優(yōu)化器使用的狀況。4.利用TransactSQL語句修改UQ_tname的索引屬性,當執(zhí)行多行插入操作時出現(xiàn)重復(fù)鍵值,則忽略該記錄,且設(shè)置填充因子為80%。5.利用SQLServerManagementStudio在teaching數(shù)據(jù)庫中創(chuàng)立視圖V_course_avg,查詢沒門課程的課程號、課程名及選修該課程的學(xué)生的期末平均成績平均分,并且按平均分降序排列。6.利用Transact-SQL語句,在teaching數(shù)據(jù)庫中創(chuàng)立視圖v__age,查詢年齡在18歲及以,上的學(xué)生的學(xué)號、姓名、性別、出生日期和班級編號。若該視圖已存在,則刪除后重建。7.利用Transact-SQL語句,在teaching數(shù)據(jù)庫中創(chuàng)立視圖v_teachercourse,包含教師編號、教師姓名、職稱、課程號、課程名和任課班級。8.利用Transact-SQL語句修改v.age的視圖定義,添加WITHCHECKOPTION選項。9.通過視圖v_teacher..course將教師編號為’t05017’的教師的職稱更改為副教授’,10.利用Transact-SQL語句刪除創(chuàng)立的索引和視圖。五、分析與探討索引是對數(shù)據(jù)庫表中一列或多列的值進行排序的一種結(jié)構(gòu),使用索引可快速訪問數(shù)據(jù)庫表中的特定信息。是一種單獨的、物理的對數(shù)據(jù)庫表中一列或多列的值進行排序的一種存儲結(jié)構(gòu),它是某個表中一列或若干列值的集合和相應(yīng)的指向表中物理標識這些值的數(shù)據(jù)頁的規(guī)律指針清單。1、視圖是已經(jīng)編譯好的sql語句。而表不是2、視圖沒有實際的物理記錄。而表有。3、表是內(nèi)容,視圖是窗口4、表只用物理空間而視圖不占用物理空間,視圖只是規(guī)律概念的存在,表可以及時對它進行修改,但視圖只能有創(chuàng)立的語句來修改5、表是內(nèi)模式,視圖是外模式6、視圖是查看數(shù)據(jù)表的一種方法,可以查詢數(shù)據(jù)表中某些字段構(gòu)成的數(shù)據(jù),只是一些SQL語句的集合。從安全的角度說,視圖可以不給用戶接觸數(shù)據(jù)表,從而不知道表結(jié)構(gòu)。7、表屬于全局模式中的表,是實表;視圖屬于局部模式的表,是虛表。8、視圖的建立和刪除只影響視圖本身,不影響對應(yīng)的基本表。(1)使用INSERT語句向數(shù)據(jù)表中插入數(shù)據(jù)時,用戶必需有插入數(shù)據(jù)的權(quán)利。(2)由于視圖只引用表中的部分字段,所以通過視圖插入數(shù)據(jù)時只能明確指定視圖中引用的字段的取值。而那些表中并未引用的字段,必須知道在沒有指定取值的狀況下如何填充數(shù)據(jù),因此視圖中未引用的字段必需具備以下條件之一。該字段允許空值。該字段設(shè)有默認值。該字段是標識字段,可根據(jù)標識種子和標識增量自動填充數(shù)據(jù)。該字段的數(shù)據(jù)類型為timestamp或uniqueidentifier。(3)視圖中不能包含多個字段值的組合,或者包含使用統(tǒng)計函數(shù)的結(jié)果。(4)視圖中不能包含DISTINC

溫馨提示

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

評論

0/150

提交評論