資源描述:
《SQL Server 2005 第7章 視圖及其應(yīng)用》由會員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫。
1、第7章視圖及其應(yīng)用視圖概述1視圖的創(chuàng)建和查詢2視圖的管理和維護(hù)3通過視圖修改表數(shù)據(jù)4本章重點(diǎn)視圖的基本概念視圖的創(chuàng)建、修改與刪除使用視圖操作表數(shù)據(jù)本章難點(diǎn)視圖概念的理解視圖的創(chuàng)建、修改等操作的T-SQL語法第7章視圖及其應(yīng)用視圖概述1視圖的創(chuàng)建和查詢2視圖的管理和維護(hù)3通過視圖修改表數(shù)據(jù)4所謂視圖(View)其實(shí)是執(zhí)行查詢語句后所得到的查詢結(jié)果,這個(gè)查詢結(jié)果可以仿真成數(shù)據(jù)表來使用,所以又有人稱它為虛擬數(shù)據(jù)表。雖是“虛擬”數(shù)據(jù)表,可是視圖在操作上和數(shù)據(jù)表是沒什么區(qū)別的——凡是數(shù)據(jù)表可以出現(xiàn)的地方,通常也就
2、是視圖可以露臉的地方,例如SELECT*FROM數(shù)據(jù)表名稱SELECT*FROM視圖名稱7.1視圖概述1、視圖的基本概念視圖是一個(gè)虛擬表,其結(jié)構(gòu)和數(shù)據(jù)是建立在對表的查詢基礎(chǔ)上的。所以視圖是從一個(gè)或多個(gè)表中導(dǎo)出的,視圖內(nèi)容由查詢語句定義生成。從表面上看,視圖和真實(shí)表一樣,具有結(jié)構(gòu)和數(shù)據(jù),包含一系列帶有名稱的列和行數(shù)據(jù)。實(shí)質(zhì)上,表是視圖的基礎(chǔ),數(shù)據(jù)庫中只存儲了視圖定義,而不存放視圖所對應(yīng)的數(shù)據(jù),視圖所對應(yīng)的數(shù)據(jù)存放在視圖所引用的表中。7.1視圖概述以往當(dāng)我們要查詢數(shù)據(jù)時(shí),一定是很認(rèn)真地從設(shè)計(jì)SELECT語句
3、開始,然后執(zhí)行查詢語句得到所要的結(jié)果。例:查找選修A002號課程并且成績及格的學(xué)生的姓名及成績。USExsglSELECT姓名,成績FROMXS,CJWHEREXS.學(xué)號=CJ.學(xué)號AND課程號=‘A002’AND成績>=60GO7.1視圖概述查詢結(jié)果:假如經(jīng)常要以同樣的條件來查詢數(shù)據(jù)時(shí),那么每次都要重復(fù)輸入相同的查詢語句,那一點(diǎn)效率都沒有了。若將這個(gè)經(jīng)常要重復(fù)使用的查詢語句創(chuàng)建成視圖,就不用那么麻煩了。7.1視圖概述例:CREATEVIEW課程及格ASSELECT姓名,成績FROMXS,CJWHERE
4、XS.學(xué)號=CJ.學(xué)號AND課程號=‘A002’AND成績>=60GOSELECT*FROM課程及格7.1視圖概述“課程及格”的視圖XS表的“姓名”SELECT姓名,成績FROMXS,CJWHEREXS.學(xué)號=CJ.學(xué)號AND課程號=‘A002’AND成績>=60CJ表的“成績”7.1視圖概述2、視圖的作用1)視圖可以集中數(shù)據(jù),滿足不同用戶對數(shù)據(jù)的不同要求。2)簡化操作。視圖大大簡化了用戶對數(shù)據(jù)的操作。因?yàn)樵诙x視圖時(shí),若視圖本身就是一個(gè)復(fù)雜查詢的結(jié)果集,這樣在每次執(zhí)行相同查詢時(shí),不必重新寫這些復(fù)雜查詢
5、語句3)定制數(shù)據(jù)。視圖能夠?qū)崿F(xiàn)讓不同的用戶以不同的方式看到不同或相同的數(shù)據(jù)集7.1視圖概述4)安全性。視圖可以作為一種安全機(jī)制。通過視圖用戶只能查看和修改他們所能看到的數(shù)據(jù)。其他數(shù)據(jù)庫或表既不可見也不可訪問。7.1視圖概述3、使用視圖的注意事項(xiàng)(1)只有在當(dāng)前的數(shù)據(jù)庫中才能創(chuàng)建視圖(2)視圖的命名必須遵循標(biāo)識符命名規(guī)則,不能與表同名(3)不能把規(guī)則、默認(rèn)值或觸發(fā)器與視圖相關(guān)聯(lián)(4)使用視圖查詢時(shí),若其關(guān)聯(lián)的基本表中添加了新字段,則必須重新創(chuàng)建視圖才能查詢到(5)如果與視圖相關(guān)聯(lián)的表或視圖被刪除,則該視圖
6、將不能再使用7.1視圖概述第7章視圖及其應(yīng)用視圖概述1視圖的創(chuàng)建和查詢2視圖的管理和維護(hù)3通過視圖修改表數(shù)據(jù)41、使用管理工具創(chuàng)建視圖(1)展開xsgl數(shù)據(jù)庫,在“視圖”選項(xiàng)上,右鍵選擇“新建視圖”7.2視圖的創(chuàng)建和查詢(2)彈出“新建視圖”窗口并同時(shí)彈出“添加表”對話框7.2視圖的創(chuàng)建和查詢(3)選擇相應(yīng)的列7.2視圖的創(chuàng)建和查詢(4)保存視圖7.2視圖的創(chuàng)建和查詢(5)視圖保存成功7.2視圖的創(chuàng)建和查詢【提示】保存視圖時(shí),實(shí)際上保存的就是視圖對應(yīng)的SELECT查詢。保存的是視圖的定義,而不是SELE
7、CT查詢的結(jié)果。2、使用T-SQL語句創(chuàng)建視圖7.2視圖的創(chuàng)建和查詢CREATEVIEW視圖的名稱AS定義視圖的SELECT語句不能使用INTO、ORDERBY、COMPUTE或COMPUTEBY7.2視圖的創(chuàng)建和查詢練習(xí):在電子商城數(shù)據(jù)庫WebShop中創(chuàng)建以價(jià)格升序排列的“促銷”商品的視圖vw_SaleGoods。CREATEVIEW信息管理專業(yè)學(xué)生成績視圖ASSELECTcj.學(xué)號,xs.姓名,cj.課程號,kc.課程名,cj.成績FROMxs,cj,kcWHERExs.學(xué)號=cj.學(xué)號ANDcj
8、.課程號=kc.課程號ANDxs.專業(yè)=‘信息管理’GO例7.1創(chuàng)建信息管理專業(yè)學(xué)生成績視圖7.2視圖的創(chuàng)建和查詢例:創(chuàng)建女生檔案視圖NXS_VIEW,內(nèi)容包括所有女生的檔案例:創(chuàng)建學(xué)生成績視圖XSCJ_VIEW,包括所有學(xué)生所學(xué)課程的課程名和成績7.2視圖的創(chuàng)建和查詢3、使用視圖查詢創(chuàng)建視圖后,就可以像查詢基表那樣對視圖進(jìn)行查詢。例7.2在信息管理專業(yè)學(xué)生成績視圖中查詢姓名為“王燕”同學(xué)的成績7.2視圖的創(chuàng)建和查詢SELECT*FROM信