一文帶你理解mysql中的視圖

視圖算是一個mysql中一個稍微比較高級一點的知識點,它本身就是一個虛擬表,這篇文章從案例出發介紹mysql中的視圖。

一、理解視圖

還記得在剛剛學習視圖的時候,總是和表的概念分不清。我們可以這樣來理解。小學的時候,每年都會舉辦一次抽考活動,意思是從每一個班級裡面篩選出幾個優秀的同學去參加考試。這時候每一個班級就可以當作是一張真實的表,很多班級篩選出來的這些同學就可以臨時組成一個班級,這個班級就可以當作一個視圖,也就是說,這個班級其實不是真實存在的,當考試過後,這些學生還是各回各家各找各媽。

mysql從5.1的版本開始有視圖功能的,通常情況下,視圖是為了封裝一些複雜的操作或者是一些重複的操作。比如說在多個地方使用相同的查詢結果,再或者是sql語句比較複雜,封裝成視圖,下一次直接使用即可。

視圖的作用:

(1)提高了重用性,對數據庫重構,卻不影響程序的運行,

(2)提高了安全性,可以對不同的用戶,讓數據更加清晰,特別是查詢操作,減少複雜的SQL語句,

(3)增強可讀性;更加安全,數據庫授權命令不能限定到特定行和特定列,但是通過合理創建視圖,可以把權限限定到行列級別;

二、視圖操作

創建視圖:

create view 視圖名 as select 字段名稱 from 表名……;

查看視圖:

(1)describe 視圖名;

(2)show table status like '視圖名'\\G;

(3)show create view 視圖名;

(4)select * from information_schema.views;

修改視圖:

create view 視圖名 as select 字段名稱 from 表名……. ;

alter view 視圖名 as select 字段名稱 from 表名……;

更新視圖:

(1)update 視圖名 set 字段名=值;

(2)insert into 表名 values(值,值…);

(3)delete from 視圖名 where 字段=值;

刪除視圖:

drop view if exists 視圖名;

下面舉個例子看看吧。

三、舉例演示

在這裡使用的是單表下創建視圖

一文帶你理解mysql中的視圖

在這裡新建了一個user表,然後往裡面插入了幾條數據。下面我們新建一個視圖再去使用。

一文帶你理解mysql中的視圖

​現在我們創建了一個視圖名字叫做user_view,然後選擇了其中幾條字段,使用的時候就可以像正常表一樣去使用了。在多表情況下創建視圖也是一樣的,只是在select語句的時候再多表鏈接查詢而已。


分享到:


相關文章: