MySQL學習筆記之視圖

來源:互聯網
上載者:User

標籤:

  視圖是對磁碟上儲存的表資料的抽象,即抽取一個表或多個表的部分行或列的資料,展示給使用者。

  首先列舉下MySQL中最簡單的對視圖操作的文法:

1、建立視圖:

create view 視圖名 as     select語句例如:create view v_fruit as    select name,place,weight from t_fruit         where weight<=12;

據我所知,“as”後面的語句肯定都是以“select”開頭的,可以理解成視圖的建立結果就是一張新的表格,表格裡面有哪些東西呢,就是select語句的結果;另外這張新的“表格”的欄位與“select”後面的名字對應,在上例中就是name,place,weight,但是也可以用as或省略as的別名形式,改變新“表格”的欄位名,例如:

create view v_fruit as    select name myname,place as myplace,weight from t_fruit         where weight<=12;

這樣,“新表格”的包含的所有欄位名就是myname,myplace,weight

上面的視圖是在一張表的基礎上建立的,也可以根據多張表串連查詢,或者根據其他的視圖建立

 

2、使用視圖:

  視圖一旦建立,操作起來就跟表格一樣,愛怎麼玩就怎麼玩,至少你往編輯器裡面輸語句,肯定不會報錯。實際執行階段就不一樣了,對於select from的查詢操作,肯定不會出任何問題;但是對於增、刪、改,因為視圖實際儲存的只是定義,這三個操作會改動底下的實際的表格,而你看到的view,裡面的資料可能來源於好幾個表格,也有可能是通過和、平均數等計算得到的,一旦insert、delete或者update,改動就會特別複雜。為了保險起見,對於一些情況,增刪改直接會被MySQL系統判定為誤操作,無法成功。這裡修改失敗的情況特別多,只列舉幾個,比如改動涉及到兩個或兩個以上的表會失敗,改動後not null的列沒有值會失敗,view的列值通過sum、count等計算得到的會失敗。

 

3、修改視圖:

  有兩種方法,一種是常規的alter,另一種可以跟建立視圖的共用

①alter方法,只需把建立時的create改成alter就行,比如:

alter view v_fruit as    select place as myplace,weight from t_fruit         where weight<=12;

②第1點建立視圖裡面漏了沒說,實際上存在建立和修改視圖可以共用的方法:create or replace,只要把create換成這3個單詞,其他不要變

create or replace view v_fruit as    select place as myplace,weight from t_fruit         where weight<=12;

 

 4、刪除視圖:

drop view 視圖名;或者drop view 視圖1,視圖2,...

 

5、查看視圖各欄位的定義:

describe 視圖名;或者desc 視圖名;

  

更深層次分析未完待續。。。

MySQL學習筆記之視圖

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.