MySQL<視圖>

來源:互聯網
上載者:User

標籤:mys   with   statement   獨立性   協助   sel   upd   行資料   帶來   

視圖   視圖概述

    視圖是指從一個或幾個基本表中匯出的表,可以像操作基本表一樣操作視圖。視圖中只存放視圖定義而不存放視圖對應的資料。

    如果基本表的資料發生變化,從視圖中查詢出的資料也會發生變化。因此可以把視圖認為是一個虛擬表。

  優點

    簡化查詢語句

        日常開發中我們可以將經常使用的查詢定義為視圖,從而使使用者避免大量重複的操作。

安全性

        通過視圖使用者只能查詢和修改他們所能見到的資料,資料庫中的其他資料則既看不到也取不到。

    邏輯資料獨立性

    視圖可以協助使用者屏蔽真實表結構變化帶來的影響。

視圖管理   建立視圖的文法格式

    create view<視圖名>[(<列名>...)] as 子查詢 [WITH CHECK OPTION]

    子查詢可以出現任意select語句,但通常在查詢語句中不允許出現Order by和DISTINCT

  在單表上建立視圖   在多表上建立視圖   查看視圖

    使用DESCRIBE語句可以查看視圖的欄位資訊

    DESCRIBE 視圖名;

    或DESC 視圖名;

    使用SHOW TABLE STATUS語句可以查看視圖的基本資料

    SHOW TABLE STATUS LIKE ‘視圖名‘

    使用SHOW CREATE VIEW語句不僅可以查看建立視圖時的定義語句,還可以查看視圖的字元編碼

    SHOW CREATE VIEW 視圖名;

  修改視圖

    由於視圖是不實際儲存資料的虛擬表,因此更新視圖的操作,最終要轉化為對基本表的更新操作。為了防止對視圖進行資料更新時,對不屬於視圖範圍的基本表資料進行操作,可以在定義視圖時加上WITH CHECK OPTION子句。

    我們發現表中資料發生了改變。由於視圖多是給使用者進行瀏覽的,並不需要其進行修改,所以這樣做很不安全。所以我們一般在SQL語句末尾加上WITH CHECK OPTION子句,這樣使用者就不能隨意進行修改了。

    1、使用CREATE OR REPLACE VIEW語句修改視圖

      CREATE [OR REPLACE ][ALGORITHM = {UNDEFINED | MERGE | TEMPTABLE}]

      VIEW view_name [(column_list)]

      AS SELECT_statement

      [WITH[CASCADED | LOCAL] CHECK OPTION]

    2、使用ALTER語句修改視圖

      ALTER [ALGORITHM = {UNDEFINED | MERGE | TEMPTABLE}]

      VIEW view_name [(column_list)]

      AS SELECT_statement

      [WITH[CASCADED | LOCAL] CHECK OPTION]

  更新視圖

    當視圖中包含有如下內容時,視圖的更新操作將不能被執行:

    視圖中不包含基本表中被定義為非空的列。

    在定義視圖的SELECT語句後的欄位列表中使用了數學運算式。

    在定義視圖的SELECT語句後的欄位列表中使用彙總函式。

    在定義視圖的SELECT語句中使用了DISTINCT,UNION,TOP,GROUP BY或HAVING子句。

    使用UPDATE語句更新視圖

    使用DELETE語句更新視圖

    使用INSERT語句更新視圖

  刪除視圖

    只能刪除視圖的定義,不會刪除資料。

    drop view <視圖名>

    應用案例--視圖的應用

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.