




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
r
主要內(nèi)容
1視圖概述更
2創(chuàng)建視圖
3使用視圖的優(yōu)點(diǎn)和缺點(diǎn)
4創(chuàng)建視圖示例
5視圖信息的查看3及
6視圖的修改、刪除與重命名:爐
7視圖數(shù)據(jù)的查詢、插入、修改與刪除
返回目錄
3.8.1視圖概念
■視圖是一種數(shù)據(jù)庫(kù)對(duì)象,是從一個(gè)或者多個(gè)數(shù)據(jù)表或視
圖中導(dǎo)出的虛表,視圖的結(jié)構(gòu)和數(shù)據(jù)是對(duì)數(shù)據(jù)表進(jìn)行查
詢的結(jié)果。
■視圖被定義后便存儲(chǔ)在數(shù)據(jù)庫(kù)中,通過(guò)視圖看到的數(shù)據(jù)
只是存放在基表中的數(shù)據(jù)。當(dāng)對(duì)通過(guò)視圖看到的數(shù)據(jù)進(jìn)
行修改時(shí),相應(yīng)的基表的數(shù)據(jù)也會(huì)發(fā)生變化,同時(shí),若
基表的數(shù)據(jù)發(fā)生變化,這種變化也會(huì)自動(dòng)地反映到視圖
中。
■視圖可以是一個(gè)數(shù)據(jù)表的一部分,也可以是多個(gè)基表的
聯(lián)合;視圖也可以由一個(gè)或多個(gè)其他視圖產(chǎn)生。
■一旦視圖定義后,就可以用select語(yǔ)句象對(duì)真實(shí)表一樣查
詢。
3
382創(chuàng)建視圖
■2.1使用Transact-SQL語(yǔ)句創(chuàng)建視圖
■1.創(chuàng)建視圖的SQL語(yǔ)句的語(yǔ)法形式
CREATEVIEW[<owner>.]view_name
[(column_name[,...n])]-
[WITHENCRYPTION]
AS
select_statement
FROMtable_nameWHEREsearch_condition
[WITHCHECKOPTION]一
.其中:
?-viewname:為新創(chuàng)建的視圖指定的名字,視圖名稱必
須符合標(biāo)識(shí)符規(guī)則。
?-columnname:在視圖中包含的列名也可以在SELECT
語(yǔ)而不指定列名。
4
?-table_name:視圖基表的名字。
?-selec^statement:選擇哪些列進(jìn)入視圖的SELECT語(yǔ)句。
?-WHEREsearch_condition:基表數(shù)據(jù)進(jìn)入視圖所應(yīng)滿足
的條件一
?"WITHCHECKOPTION:迫使通過(guò)視圖執(zhí)行的所有數(shù)
據(jù)修改語(yǔ)句必須符合視圖定義中設(shè)置的條件。
?-WITHENCRYPTION:對(duì)視圖的定義進(jìn)行加密。
■2.用SQL語(yǔ)句創(chuàng)建視圖的步驟
■在創(chuàng)建視圖時(shí),應(yīng)首先測(cè)試SELECT語(yǔ)句以確保能返回正確
的結(jié)果。創(chuàng)建視圖的步驟如下:
?①編寫用于創(chuàng)建視圖的SELECT語(yǔ)句。
?②對(duì)SELECT語(yǔ)句進(jìn)行測(cè)試。
■③檢查測(cè)試結(jié)果是否正確,是否和預(yù)期的一樣。
■④創(chuàng)建視圖。
5
■3.在創(chuàng)建視圖的時(shí)候,應(yīng)該考慮以下因素
?①在CREATEVIEW語(yǔ)句中,不能包括ORDERBY、
COMPUTE或者COMPUTEBY子句,也不能出現(xiàn)INTO
關(guān)鍵字。
?②創(chuàng)建視圖所參考基表的列數(shù)最多為1024列。
?③創(chuàng)建視圖不能參考臨時(shí)表。
?④在一個(gè)批處理語(yǔ)句中,CREATEVIEW語(yǔ)句不能和
其他Transact-SQL語(yǔ)句混合使用。
?⑤盡量避免使用外連接創(chuàng)建視圖。
6
工,r
■2.2使用SQLServerManagementStudio創(chuàng)建視圖
■假設(shè)要從student表中建立一個(gè)性別為“男”、包含
student_id>student_name>class_id>sex四列信息的視
So
■f%SQLServerManagementStudio創(chuàng)建視圖的具體步驟
■1)首先進(jìn)入SQLServerManagementStudioo
■2)按順序展開(kāi)“數(shù)據(jù)庫(kù)”、要?jiǎng)?chuàng)建視圖所屬的數(shù)據(jù)庫(kù)、再
展開(kāi)“視圖”子節(jié)點(diǎn)。
■3)右邊“摘要”窗口顯示的是數(shù)據(jù)庫(kù)中已經(jīng)存在的視圖,
右擊窗口的空白處,在彈出的快捷菜單上選擇“新建視圖”
項(xiàng),系統(tǒng)彈出如圖9-1的“添加表”窗口,這個(gè)窗口用于為
新創(chuàng)建的視圖提供基礎(chǔ)數(shù)據(jù)。該窗口有三個(gè)選項(xiàng)卡,表、
視圖及函數(shù),這意味著可以以表、視圖及表值函數(shù)為基礎(chǔ)
數(shù)據(jù)創(chuàng)建新的視圖。
7
圖1創(chuàng)建視圖的窗口
4)點(diǎn)擊“添加”,選擇表student,再點(diǎn)擊“關(guān)閉”
系統(tǒng)呈現(xiàn)如圖2的視圖建立窗口。
8
■在SQL查詢條件窗格中輸入查詢條件語(yǔ)句:
SELECTstudentjd,student_name,classjd,sex
FROMstudentWHEREsex=1
■5)確認(rèn)結(jié)果正確后,點(diǎn)擊工具欄上的按鈕,保存當(dāng)前
創(chuàng)建的視圖,輸入視圖的名稱,點(diǎn)擊“確定”按鈕,一個(gè)
視圖也就創(chuàng)建完成了。
節(jié)置預(yù)
10
3.8.3使用視圖的優(yōu)點(diǎn)和缺點(diǎn)
■1.視圖的優(yōu)點(diǎn)
?視圖可以屏蔽數(shù)據(jù)的復(fù)雜性,簡(jiǎn)化用戶對(duì)數(shù)據(jù)庫(kù)的操作,
還可以使用視圖重新組織數(shù)據(jù)。
?視圖可以讓不同的用戶以不同的方式看到不同或者相同
的數(shù)據(jù)集。
?安全保護(hù):視圖可以定制不同用戶對(duì)數(shù)據(jù)的訪問(wèn)權(quán)限。
■2.視圖的缺點(diǎn)
?性能降低:
?修改的限制:
3.8.4創(chuàng)建視圖示例
■4.1創(chuàng)建水平視圖型
■4.2創(chuàng)建投影視圖2
?4.3創(chuàng)建聯(lián)合視圖*
■4.4創(chuàng)建包含集合函數(shù)的視圖
■4.5創(chuàng)建視圖的視圖*
12
4.1創(chuàng)建水平視圖
■視圖的常見(jiàn)用法是限制用戶只能夠存取表中的某些數(shù)據(jù)行,
用這種方法產(chǎn)生的視圖稱為水平視圖,即表中行的子集。
【例1】在數(shù)據(jù)庫(kù)JWGL的表student上創(chuàng)建一個(gè)視圖
student_view1,視圖的數(shù)據(jù)包括班級(jí)號(hào)為七99402'或
'g994d3'所有學(xué)生的資料。
USEjwgl
GO
CREATEVIEWstudent_view1
AS
SELECT*FROMstudent
WHERE(classjd='g99402'ORclassjd='g99403')
13
4.2創(chuàng)建投影視圖
■如果限制用戶只能存取表中的部分列的數(shù)據(jù),那么,使用這
種方法創(chuàng)建的視圖就稱為投影視圖,即表中列的子集。
【例2】創(chuàng)建一個(gè)名為“studdent_view2”的視圖,它從數(shù)據(jù)庫(kù)
JWGL的student表中查詢出性別為“男”的所有學(xué)生的姓名、
性別、家庭住址等資料。
USEjwgl
GO
CREATEVIEWstudent_view2
AS
SELECTstudentjdAS學(xué)號(hào),student_nameAS姓名,
sexAS性另U,class_id班級(jí),home_addrAS家庭
住址,entrance_dateAS入學(xué)時(shí)間,birthAS出生卒月
FROMstudent
WHEREsex=1WITHCHECKOPTION
14
4.3創(chuàng)建聯(lián)合視圖
■使用視圖的一個(gè)原因是簡(jiǎn)化多表查詢,可以生成從多個(gè)表中提取
數(shù)據(jù)的聯(lián)合視圖(joinedView)把查詢結(jié)果表示為一個(gè)單獨(dú)的“可
見(jiàn)表。
【例3】創(chuàng)建一個(gè)名為“student_view3”的視圖,它是由表course、
book及classcourse創(chuàng)建的二葉顯示“g99402”班所開(kāi)課程的課
程名、所用教材的教材名、出版社及作髻的視圖。
USEjwgl
GO
CREATEVIEWstudent_view3
WITHENCRYPTION/*力口密視圖7
AS
SELECTcourse.course_nameAS課程名,book.book_nameAS書(shū)名,
book.publish_companyAS出版社,book.authorAS作者
FROMcourse,book,class_course
WHERE(course.bookjd=book.bookJdAND
class_course.courselid=course.coiirsejd)AND
(class^course.classjid='g99402')一
15
44創(chuàng)建包含集合函數(shù)的視圖
■在視圖定義中可以包含GROUPBY和集合函數(shù),從而將這些匯
總數(shù)據(jù)放到一人“可見(jiàn)”的表中,允許用戶對(duì)它們做進(jìn)一步的查
葡。要注意,由現(xiàn)在SELECT子句中的歹。名,要么苞含在集合函
數(shù)中,要么包含在GROUPBY子句中。
【例4】使用集合函數(shù)SUM和GROUPBY子句以studentcourse表
為基表,創(chuàng)建一個(gè)名為“studentsumview4\能顯示所看學(xué)至
學(xué)號(hào)和總成績(jī)的視圖。一一
USEjwgl
GO
CREATEVIEWstudent_sum_view4(學(xué)號(hào),總成績(jī))
AS
SELECTstudentjd,sum(grade)FROMstudent_course
GROUPBYstudentjd-
注意:與水平視圖和投影視圖不同,本例產(chǎn)生的視圖中的行與基
本表中的行不是一一對(duì)應(yīng)的,它是一些行數(shù)據(jù)的匯總,因此,不
能通過(guò)視圖來(lái)修改數(shù)據(jù)。伐
4.5創(chuàng)建視圖的視圖
■前面創(chuàng)建的視圖都是在表的基礎(chǔ)上創(chuàng)建的,在視圖的基礎(chǔ)上
還可以創(chuàng)建視圖。
【例5】從視圖student_view1創(chuàng)建一個(gè)名為
Ustudent_view5\能查詢出班級(jí)名為“g99402”的所有學(xué)
生資料的視圖。
USEjwgl
GO
CREATEVIEWstudent_view5
AS
SELECT*FROMstudent_view1
WHEREclassjd='g99402,
GO17
3.8.5查看視圖信息
■使用系統(tǒng)存儲(chǔ)過(guò)程查看視圖信息
?sp_help數(shù)據(jù)庫(kù)對(duì)象名稱
?sp_helptext視圖(觸發(fā)器、存儲(chǔ)過(guò)程)
?spdepends數(shù)據(jù)庫(kù)對(duì)象名稱
■1.使用系統(tǒng)存儲(chǔ)過(guò)程
?①查看視圖的名稱、擁有者及創(chuàng)建日期等信息
sp_helpstudent_view1
?②杳看視圖的定義腳本
sp_helptextstudent_view1
■③查看數(shù)據(jù)的來(lái)源一
sp_dependsstudent_view1
■2.使用SQLServerManagementStudio查看視
(P164),
節(jié)及2
3.8.6視圖的修改、刪除與重命名
■6.1視圖的修改:將
■6.2視圖的刪除型
■6.3視圖的重命名:淤
19
6.1視圖的修改
■1.使用SQLServerManagementStudio修改視圖(略)
■2.使用Transact-SQL語(yǔ)句修改視圖
ALTERVIEWview_name
[(column[,…n])]
[WITHENCRYPTION]
AS
select_statement
[WITHCHECKOPTION]-
■在以上語(yǔ)句的語(yǔ)法中:
?-view_name:被修改的視圖的名字。
?-column_name:在視圖中包含的列名。
?-WITHCHECKOPTION:迫使通過(guò)視圖進(jìn)行數(shù)據(jù)修改的
所有語(yǔ)句必須符合視圖定義中設(shè)置的條件。
20
?-table_name:視圖基表的名字。
?-WITHENCRYPTION:對(duì)包含創(chuàng)建視圖的SQL腳本進(jìn)行
加密。
【例6】修改視圖student_view1的定義,使其從student表中查
詢出性別為“女”的所有學(xué)生的資料。
USEjwgl
GO
ALTERVIEWstudent_view1
AS
SELECT*FROMstudent
WHEREsex=0
21
6.2視圖的刪除
■刪除一個(gè)視圖,就是刪除視圖的定義及其賦予的全部權(quán)限,而
原先通過(guò)視圖獲得的數(shù)據(jù)并沒(méi)有被刪除。刪除視圖參考表的
時(shí)候,視圖不會(huì)被刪除,視圖必須被單獨(dú)刪除。刪除視圖有
兩種方法,一是使用SQLServerManagementStudio刪除,
二是用DROPVIEW語(yǔ)句刪除。
■1.用DROPVIEW語(yǔ)句刪除視圖
■DROPVIEW語(yǔ)句的語(yǔ)法形式如下:
DROPVIEWview_namel,view_name2,...
■使用DROPVIEW語(yǔ)而可以一次冊(cè)森多個(gè)視圖。下面的例子
是將student_view5視圖刪除。
DROPVIEWstudent_view5
22
■2.使用SQLServerManagementStudio刪除視圖
?①進(jìn)入SQLServerManagementStudio,展開(kāi)
相應(yīng)的服務(wù)器組和相應(yīng)的服務(wù)器節(jié)點(diǎn)。
?②展開(kāi)“數(shù)據(jù)庫(kù)”節(jié)點(diǎn),然后展開(kāi)視圖所屬的
數(shù)據(jù)庫(kù),再展開(kāi)“視圖”子節(jié)點(diǎn)。
?③在右側(cè)的視圖資料顯示窗口上,右擊視圖
student__view1,在彈出的快捷菜單中,單擊“刪
除”菜簞命令,再單擊“全部除去”按鈕即可將
選定的視圖刪除。
23
6.3視圖的重命名
■視圖創(chuàng)建后,有時(shí)需要對(duì)視圖重命名,對(duì)視圖重命
名有兩種方法:一是用SQLServerManagement
Studio,二是用系統(tǒng)存儲(chǔ)過(guò)程spjename。
■1.使用系統(tǒng)存儲(chǔ)過(guò)程重命名視圖
■使用系統(tǒng)存儲(chǔ)過(guò)程sp_rename對(duì)視圖重命名的語(yǔ)法
形式是:
sp_renameold_view_name,new_view_name
下面示例是將視圖student_view3重命名為
new_student_view3:
sp_renamestudent_view3,new_student_view3
24
■2.使用SQLServerManagementStudio對(duì)視圖重命名
■使用SQLServerManagementStudio對(duì)視圖重命名
的步驟如下:
?@iSASQLServerManagementStudio,展開(kāi)相應(yīng)的服
務(wù)器組和相應(yīng)的服務(wù)器節(jié)點(diǎn)。
?②展開(kāi)“數(shù)據(jù)庫(kù)”節(jié)點(diǎn),然后展開(kāi)視圖所屬的數(shù)據(jù)庫(kù),
再展開(kāi)“視圖”子節(jié)點(diǎn)。
?③在右側(cè)的視圖資料顯示窗口上,右擊要重命名的視圖,
在彈出的快捷菜單中,單擊“重命名”菜單命令。
?④此時(shí),視圖名稱變?yōu)榭删庉嫚顟B(tài),輸入新的視圖名稱
并按〈Enter〉鍵即可。
25
3.8.7視圖數(shù)據(jù)的查詢、插入、修改與刪除
7.1用T-SQL語(yǔ)句進(jìn)行視圖數(shù)據(jù)的查詢、插入、修改與
刪除
■使用T-SQL語(yǔ)句可以進(jìn)行視圖數(shù)據(jù)的查詢、插入、修改與刪
除。其語(yǔ)法形式和對(duì)表中數(shù)據(jù)的查詢、插入、修改與刪除操作
幾乎一樣。
■1.從視圖中查詢數(shù)據(jù)
【例7】從視圖student_view2中查詢出學(xué)生姓名為“錢利”的學(xué)
生資料。
USEjwgl
GO
SELECT*FROMstudent_view2
WHERE姓名+錢利,
想一想,為什么WHERE子句不能用student_name=,錢利,?
26
■2.向視圖插入數(shù)據(jù)
【例8】向視圖student_view2中插入一行數(shù)據(jù)。學(xué)號(hào)、姓
名、性別、班級(jí)、家庭住址'入學(xué)時(shí)間,出生年月分別是
“g9940210",“趙青""男"Jg99402”,“南京中山
北路10號(hào)",M999-09-01','1985-01-09'。
USEjwgl
GO
INSERTINTOstudent_view2
(學(xué)號(hào),姓名,性別,班級(jí),家庭住址,入學(xué)時(shí)間,出生年月)
VALUES('g9940210','趙青/,'g99402','南京中山北路
1999-09-0171985-01-09,)
27
■3.修改視圖中的數(shù)據(jù)
【例9】將視圖studentview2中“錢利”同學(xué)的家庭住址改為
“揚(yáng)州市南京路8號(hào)歹
USEjwgl
GO
UPDATEstudent_view2
SET家庭住址+痂W市南京路8號(hào)’
WHERE姓名='錢利,
■4.刪除視圖中的數(shù)據(jù)
【例10】將視圖student_view2中“錢利”同學(xué)的資料刪除
USEjwgl
GO
DELETEFROMstudent_view2
WHERE姓名㈢錢利,一
28
工二I
■7.2用SQLServerManagementStudio進(jìn)行視圖數(shù)
據(jù)的插入、修改與刪除
■使用SQLServerManagementStudio對(duì)視圖插入、修改與
刪除數(shù)據(jù)
?@iSASQLServerManagementStudio,展開(kāi)相應(yīng)的
服務(wù)器組和相應(yīng)的服務(wù)器節(jié)點(diǎn)。
?②展開(kāi)“數(shù)據(jù)庫(kù)”節(jié)點(diǎn),然后展開(kāi)視圖所屬的數(shù)據(jù)庫(kù),
再展開(kāi)“視圖”子節(jié)點(diǎn)。
?③右擊要操作的視圖名稱,分別單擊“打開(kāi)視圖”、
“返回所有行”,便會(huì)出現(xiàn)圖9-3的視圖數(shù)據(jù)顯示窗口。
?插入數(shù)據(jù):直接在視圖的最后一行進(jìn)行數(shù)據(jù)的插入。
?修改數(shù)據(jù):直接點(diǎn)擊要修改的數(shù)據(jù)進(jìn)行修改。
■刪除數(shù)據(jù):右擊圖9-3的窗口的要?jiǎng)h除數(shù)據(jù)行的最左列,
在彈出的快捷菜單上點(diǎn)擊“刪除”
?④操作完成后,點(diǎn)擊工具欄上的“!”,確認(rèn)視圖數(shù)據(jù)
的修改。
29
■7.3修改視圖數(shù)據(jù)
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 核廢料處置技術(shù)-洞察及研究
- 提升學(xué)生學(xué)習(xí)效率的教育心理學(xué)方法
- 心理定價(jià)法在產(chǎn)品升級(jí)中的應(yīng)用研究
- 第21課《鄒忌諷齊王納諫》練習(xí)-統(tǒng)編版語(yǔ)文九年級(jí)下冊(cè)(含答案)
- 招標(biāo)文件編制四步法合規(guī)性審查合同
- 生態(tài)社區(qū)車位租賃及轉(zhuǎn)讓執(zhí)行合同
- 食堂承包與營(yíng)養(yǎng)均衡供應(yīng)合同
- 傳媒企業(yè)虛擬現(xiàn)實(shí)內(nèi)容制作設(shè)備采購(gòu)合同
- 餐飲連鎖品牌區(qū)域保護(hù)加盟合同范本
- 探究多媒體教學(xué)在小學(xué)數(shù)學(xué)思維培養(yǎng)中的作用
- 超級(jí)抗原問(wèn)題
- 23J916-1 住宅排氣道(一)
- 中鐵員工勞動(dòng)合同范本
- 生物基復(fù)合材料的LCA(生命周期評(píng)估)
- 三位數(shù)乘一位數(shù)豎式
- 外墻保溫吊籃施工方案
- DB43-T 2142-2021學(xué)校食堂建設(shè)與食品安全管理規(guī)范
- 體外診斷試劑盒線性范圍研究線性區(qū)間評(píng)價(jià)資料及可報(bào)告區(qū)間建立
- AQ 1097-2014 井工煤礦安全設(shè)施設(shè)計(jì)編制導(dǎo)則(正式版)
- 嬰幼兒配方乳粉市場(chǎng)銷售管理規(guī)范
- 小班語(yǔ)言《誰(shuí)的救生圈》課件
評(píng)論
0/150
提交評(píng)論