更新時間:2021-01-12 17:48:30 來源:動力節(jié)點 瀏覽1748次
視圖是指計算機數(shù)據(jù)庫中的視圖,視圖是一個虛擬表,其內(nèi)容由查詢定義。MySQL視圖是MySQL數(shù)據(jù)庫中的重要組成部分,能夠為用戶簡化對數(shù)據(jù)的理解和操作。MySQL視圖的優(yōu)點決定了視圖在MySQL數(shù)據(jù)庫中不可撼動的地位。
同真實的表一樣,視圖包含一系列帶有名稱的列和行數(shù)據(jù)。但是,視圖并不在數(shù)據(jù)庫中以存儲的數(shù)據(jù)值集形式存在。行和列數(shù)據(jù)來自由定義視圖的查詢所引用的表,并且在引用視圖時動態(tài)生成。對其中所引用的基礎(chǔ)表來說,視圖的作用類似于篩選。定義視圖的篩選可以來自當前或其它數(shù)據(jù)庫的一個或多個表,或者其它視圖。通過視圖進行查詢沒有任何限制,通過它們進行數(shù)據(jù)修改時的限制也很少。視圖是存儲在MySQL數(shù)據(jù)庫中的查詢的SQL 語句,下面我們一起來看看MySQL視圖的優(yōu)點:
1. 視點集中
視圖集中即是使用戶只關(guān)心它感興趣的某些特定數(shù)據(jù)和他們所負責(zé)的特定任務(wù)。這樣通過只允許用戶看到視圖中所定義的數(shù)據(jù)而不是視圖引用表中的數(shù)據(jù)而提高了數(shù)據(jù)的安全性。
2. 簡化操作
視圖大大簡化了用戶對數(shù)據(jù)的操作。因為在定義視圖時,若視圖本身就是一個復(fù)雜查詢的結(jié)果集,這樣在每一次執(zhí)行相同的查詢時,不必重新寫這些復(fù)雜的查詢語句,只要一條簡單的查詢視圖語句即可。可見視圖向用戶隱藏了表與表之間的復(fù)雜的連接操作。
3. 定制數(shù)據(jù)
視圖能夠?qū)崿F(xiàn)讓不同的用戶以不同的方式看到不同或相同的數(shù)據(jù)集。因此,當有許多不同水平的用戶共用同一數(shù)據(jù)庫時,這顯得極為重要。
4. 合并分割數(shù)據(jù)
在有些情況下,由于表中數(shù)據(jù)量太大,故在表的設(shè)計時常將表進行水平分割或垂直分割,但表的結(jié)構(gòu)的變化卻對應(yīng)用程序產(chǎn)生不良的影響。如果使用視圖就可以重新保持原有的結(jié)構(gòu)關(guān)系,從而使外模式保持不變,原有的應(yīng)用程序仍可以通過視圖來重載數(shù)據(jù)。
5. 安全性
視圖可以作為一種安全機制。通過視圖用戶只能查看和修改他們所能看到的數(shù)據(jù)。其它數(shù)據(jù)庫或表既不可見也不可以訪問。如果某一用戶想要訪問視圖的結(jié)果集,必須授予其訪問權(quán)限。視圖所引用表的訪問權(quán)限與視圖權(quán)限的設(shè)置互不影響。
視圖的安全性可以防止未授權(quán)用戶查看特定的行或列,使用戶只能看到表中特定行的方法如下:
1)在表中增加一個標志用戶名的列;
2)建立視圖,是用戶只能看到標有自己用戶名的行;
3)把視圖授權(quán)給其他用戶。
以上就是5條MySQL視圖的優(yōu)點,當然,我們所寫的并不是MySQL視圖的全部優(yōu)點,還有一些細節(jié)的優(yōu)點我們沒有顧及到,總的來說,以上所提到的5個MySQL視圖的優(yōu)點,決定了視圖在數(shù)據(jù)庫中存在的意義。想要學(xué)習(xí)更多的MySQL數(shù)據(jù)庫的相關(guān)知識,可以觀看本站的MySQL教程,給你全新的學(xué)習(xí)體驗!