在SQL中,視圖是外模式一級(jí)數(shù)據(jù)結(jié)構(gòu)的基本單位。它是從一個(gè)或幾個(gè)基本表中導(dǎo)出的表,是從現(xiàn)有基本表中抽取若干子集組成用戶的"專用表"。這種構(gòu)造方式必須使用 SQL中的SELECT語(yǔ)句來實(shí)現(xiàn)。在定義一個(gè)視圖時(shí),只是把其定義存放在系統(tǒng)的數(shù)據(jù)中, 而并不直接存儲(chǔ)視圖對(duì)應(yīng)的數(shù)據(jù),直到用戶使用視圖時(shí)才去求得對(duì)應(yīng)的數(shù)據(jù)。
1、視圖的定義
在SQL中,定義視圖可以使用CREATE VIEW語(yǔ)句實(shí)現(xiàn),其語(yǔ)句格式為:
CREATE VIEW 視圖名 ASSELECT語(yǔ)句
(1)單源表視圖
即視圖是從一個(gè)基本表中導(dǎo)出的:
例1:從基本表student中導(dǎo)出只包括女學(xué)生情況的視圖
CREATE VIEW WOMANVIEWAS --創(chuàng)建一個(gè)視圖WOMANVIEW
SELECT st_class,st_no,st_name,st_age --選擇列
FROM student --從基本表student引入
WHERE st_sex='女'--引入條件為性別為"女",注意字符變量都使用單引號(hào)引用
(2)多源表視圖
即視圖是從多個(gè)基本表中導(dǎo)出的:
例如:從基本表student和score中導(dǎo)出只包括女學(xué)生且分?jǐn)?shù)在60分以上的視圖
CREATE VIEWWOMAN_SCOREAS --定義視圖WOMANSCORE
SELECT student.st_class,student.st_no,student.st_name,student.st_age,score.sc_score
--有選擇性顯示相關(guān)列
FROM student,score --從基本表student和score中引入
WHERE student.st_sex = '女' AND score.sc_score >= 60 AND
student.st_no = score.st_no --選擇條件:性別為"女" 且分?jǐn)?shù)在60分以上,
--并使用st_no將兩表聯(lián)系起來。
以后如果進(jìn)行這一視圖的應(yīng)用,則只需使用語(yǔ)句
SELECT * FROM WOMAN_SCORE --其中"*"為通配符,代表所有列
2、視圖的刪除
用于刪除已不再使用的視圖,其語(yǔ)句格式如下:
DROP VIEW 視圖名
例:將上面建立的WOMAN_SCORE視圖刪除
DROP VIEW WOMAN_SCORE
對(duì)于修改視圖,很多DBMS并不予以支持,如果想了解的話,只能參考具體的數(shù)據(jù)庫(kù)管理系統(tǒng)的相關(guān)文檔。
新聞熱點(diǎn)
疑難解答