MySQL中的檢視詳解
一.什麼是檢視?
簡單來說,檢視就是從一張表中匯出的虛擬表。檢視擁有表的結構,但是在資料庫中只有檢視的定義,但是沒有檢視中的資料。
檢視是由查詢語句從一張表中匯出來的資料,不是一張實際的表。
二.檢視的作用
最大的用處就是將程式與表隔離開來,增加了安全性和簡單性。
三.建立檢視
建立檢視是指在已有的表上建立檢視,你可以在一張表上建立檢視,你也可以在多張表上建立檢視。
3.1檢視建立檢視的語法:
select Select_priv(表名使用者是否有查詢的許可權),Create_view_priv(檢視使用者是否有建檢視的許可權) FROM 資料庫.表名 WHERE user="使用者名稱"
例子:
select Select_priv ,Create_view_priv from mysql.user where user="root";
結果:
3.2建立檢視步驟:
語法:create view 檢視名(檢視中列屬性) as select語句 ;(最簡單化)
例子:首先我們來看看我們建立的表:
select * from text2;
結果:
建立語法:
create view v(vid,vnum1,vday) as select tid,tnum1,tday from text2;
檢視:
SELECT * FROM study.v;
結果:一模一樣
四.檢視操作
4.1檢視檢視的結構:使用關鍵字 describe
例子:
describe v;
結果:
4.2修改檢視
當檢視基於表的資料改變時,那麼我們就需要將修改檢視來將檢視和表的欄位相同。
4.2.1使用關鍵字:create or replace view 使用這個語句當這個檢視不存在時,他會自動建立一個表,如果他存在那麼他將重新整理一個表
語法:create or replace view 檢視名【(屬性清單)】 as select語句
4.2.2使用關鍵字alter
語法:alter view 檢視名 as select語句
五.更新檢視
更新檢視和更新表是一樣的,同樣也是使用update 語句
但是存在一點點的小小的限制在修改檢視時。
以下幾種情況不能更新檢視
1.檢視中含有聚合函式比如count( ),sum( ),max( ),min( )
2.檢視中含有union,union all,distinct,group by having等聚合有關的關鍵字
3.常量檢視
4.檢視中包含子查詢
六.刪除檢視
語法:drop view if exists 檢視名