視圖是指計(jì)算機(jī)數(shù)據(jù)庫(kù)中的視圖,是一個(gè)虛擬表,其內(nèi)容由查詢定義。同真實(shí)的表一樣,視圖包含一系列帶有名稱的列和行數(shù)據(jù)。但是,視圖并不在數(shù)據(jù)庫(kù)中以存儲(chǔ)的數(shù)據(jù)值集形式存在。行和列數(shù)據(jù)來(lái)自由定義視圖的查詢所引用的表,并且在引用視圖時(shí)動(dòng)態(tài)生成。
一、 視圖的用處
1、視圖能簡(jiǎn)化用戶操作。視圖機(jī)制使用戶可以將注意力集中在所關(guān)心的數(shù)據(jù)上。如果這些數(shù)據(jù)不是直接來(lái)自基本表,則可以通過(guò)定義視圖,使數(shù)據(jù)庫(kù)看起來(lái)結(jié)構(gòu)簡(jiǎn)單、清晰,并且可以簡(jiǎn)化用戶的數(shù)據(jù)查詢操作。例如,那些定義了若干張表連接的視圖,就將表與表之間的連接操作對(duì)用戶隱藏起來(lái)了。換句話說(shuō),用戶所做的只是對(duì)一個(gè)虛擬表的簡(jiǎn)單查詢,而這個(gè)虛擬是怎樣得來(lái)的,用戶無(wú)需了解。
2、視圖使用戶能以多種角度看待同一數(shù)據(jù)。視圖機(jī)制能使不同的用戶以不同的方式看待同一數(shù)據(jù),當(dāng)許多不同種類(lèi)的用戶共享同一個(gè)數(shù)據(jù)庫(kù)時(shí),這種靈活性是非常必要的。
3、視圖對(duì)重構(gòu)數(shù)據(jù)庫(kù)提供了一定程度的邏輯獨(dú)立性。數(shù)據(jù)的物理獨(dú)立性是指用戶的應(yīng)用程序不依賴于數(shù)據(jù)庫(kù)的物理結(jié)構(gòu)。數(shù)據(jù)的邏輯獨(dú)立性是指當(dāng)數(shù)據(jù)庫(kù)重構(gòu)造時(shí),如增加新的關(guān)系或?qū)υ械年P(guān)系增加新的字段,用戶的應(yīng)用程序不會(huì)受影響。層次數(shù)據(jù)庫(kù)和網(wǎng)狀數(shù)據(jù)庫(kù)一般能較好地支持?jǐn)?shù)據(jù)的物理獨(dú)立性,而對(duì)于邏輯獨(dú)立性則不能完全的支持。在關(guān)系數(shù)據(jù)庫(kù)中,數(shù)據(jù)庫(kù)的重構(gòu)造往往是不可避免的。重構(gòu)數(shù)據(jù)庫(kù)最常見(jiàn)的是將一個(gè)基本表“垂直”地分成多個(gè)基本表。
4、視圖能夠?qū)C(jī)密數(shù)據(jù)提供安全保護(hù)。有了視圖機(jī)制,就可以在設(shè)計(jì)數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)時(shí),對(duì)不同的用戶定義不同的視圖,使機(jī)密數(shù)據(jù)不出現(xiàn)在不應(yīng)該看到這些數(shù)據(jù)的用戶視圖上。這樣視圖機(jī)制就自動(dòng)提供了對(duì)機(jī)密數(shù)據(jù)的安全保護(hù)功能。
5、適當(dāng)?shù)睦靡晥D可以更清晰地表達(dá)查詢。
二、創(chuàng)建視圖
在創(chuàng)建視圖前應(yīng)先看看是否有權(quán)限:
SELECT SELECT_priv,create_view_priv from mysql.user WHERE user='root';

創(chuàng)建視圖語(yǔ)法:
CREATE VIEW 視圖名 AS SELECT [...] FROM [...];








暫無(wú)數(shù)據(jù)