1. 程式人生 > >MySQL中的檢視詳解

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 檢視名