SQL中使用視圖好處
2015-09-16 17:34:06
11749
視圖的優(yōu)點(diǎn)與缺點(diǎn)
在程序設(shè)計(jì)的時(shí)候必須先了解視圖的優(yōu)缺點(diǎn),這樣可以揚(yáng)長(zhǎng)避短,視圖具有如下的一些優(yōu)點(diǎn):
● 簡(jiǎn)單性。視圖不僅可以簡(jiǎn)化用戶對(duì)數(shù)據(jù)的理解,也可以簡(jiǎn)化他們的操作。那些被經(jīng)常使用的查詢可以被定義為視圖,從而使用戶不必為以后的操作每次都指定全部的條件。
● 安全性。通過(guò)視圖用戶只能查詢和修改他們所能見(jiàn)到的數(shù)據(jù)。數(shù)據(jù)庫(kù)中的其他數(shù)據(jù)則既看不見(jiàn)也取不到。數(shù)據(jù)庫(kù)授權(quán)命令可以使每個(gè)用戶對(duì)數(shù)據(jù)庫(kù)的檢索限制到特定的數(shù)據(jù)庫(kù)對(duì)象上,但不能授權(quán)到數(shù)據(jù)庫(kù)特定行和特定的列上。通過(guò)視圖,用戶可以被限制在數(shù)據(jù)的不同子集上。
● 邏輯數(shù)據(jù)獨(dú)立性。視圖可以使應(yīng)用程序和數(shù)據(jù)庫(kù)表在一定程度上獨(dú)立。如果沒(méi)有視圖,應(yīng)用一定是建立在表上的。有了視圖之后,程序可以建立在視圖之上,從而程序與數(shù)據(jù)庫(kù)表被視圖分割開(kāi)來(lái)。
視圖也存在一些缺點(diǎn),主要如下。
● 性能:SQL Server必須把視圖的查詢轉(zhuǎn)化成對(duì)基本表的查詢,如果這個(gè)視圖是由一個(gè)復(fù)雜的多表查詢所定義,那么,即使是視圖的一個(gè)簡(jiǎn)單查詢,SQL Server也把它變成一個(gè)復(fù)雜的結(jié)合體,需要花費(fèi)一定的時(shí)間。
● 修改限制:當(dāng)用戶試圖修改視圖的某些行時(shí),SQL Server必須把它轉(zhuǎn)化為對(duì)基本表的某些行的修改。對(duì)于簡(jiǎn)單視圖來(lái)說(shuō),這是很方便的,但是,對(duì)于比較復(fù)雜的視圖,可能是不可修改的。
所以,在定義數(shù)據(jù)庫(kù)對(duì)象時(shí),不能不加選擇地來(lái)定義視圖,應(yīng)該權(quán)衡視圖的優(yōu)點(diǎn)和缺點(diǎn),合理地定義視圖。
創(chuàng)建視圖方法:
SQL CREATE VIEW 語(yǔ)句
什么是視圖?
在 SQL 中,視圖是基于 SQL 語(yǔ)句的結(jié)果集的可視化的表。
視圖包含行和列,就像一個(gè)真實(shí)的表。視圖中的字段就是來(lái)自一個(gè)或多個(gè)數(shù)據(jù)庫(kù)中的真實(shí)的表中的字段。我們可以向視圖添加 SQL 函數(shù)、WHERE 以及 JOIN 語(yǔ)句,我們也可以提交數(shù)據(jù),就像這些來(lái)自于某個(gè)單一的表。
注釋:數(shù)據(jù)庫(kù)的設(shè)計(jì)和結(jié)構(gòu)不會(huì)受到視圖中的函數(shù)、where 或 join 語(yǔ)句的影響。
SQL CREATE VIEW 語(yǔ)法
CREATE VIEW view_name AS
SELECT column_name(s)
FROM table_name
WHERE condition
注釋:視圖總是顯示最近的數(shù)據(jù)。每當(dāng)用戶查詢視圖時(shí),數(shù)據(jù)庫(kù)引擎通過(guò)使用 SQL 語(yǔ)句來(lái)重建數(shù)據(jù)。
會(huì)員登錄
賬號(hào)登錄還沒(méi)有賬號(hào)?立即注冊(cè)