mysql中的視圖語法是什么

mysql中的視圖語法:1、創(chuàng)建視圖,代碼為【CREATE [OR REPLACE] [ALGORITHM = {undefined | MERGE | TEMPTABLE}]】;2、修改視圖,代碼為【ALTER [ALGORITHM 】。

mysql中的視圖語法是什么

本教程操作環(huán)境:windows7系統(tǒng)、mysql8.0.22版,DELL G3電腦,該方法適用于所有品牌電腦。

相關(guān)免費(fèi)學(xué)習(xí)推薦:mysql視頻教程

mysql中的視圖語法:

視圖的概述:

視圖(View)是一種虛擬存在的表。視圖并不在數(shù)據(jù)庫(kù)中實(shí)際存在,行和列數(shù)據(jù)來自定義視圖的查詢中使用的表,并且是在使用視圖時(shí)動(dòng)態(tài)生成的。通俗的講,視圖就是一條 select語句執(zhí)行后返回的結(jié)果集。所以我們?cè)趧?chuàng)建視圖的時(shí)候,主要的工作就落在創(chuàng)建這條SQL查詢語句。

視圖相對(duì)于普通的表的優(yōu)勢(shì)主要包括以下幾項(xiàng)。

  • 簡(jiǎn)單:使用視圖的用戶完全不需要關(guān)心后面對(duì)應(yīng)的表的結(jié)構(gòu)、關(guān)聯(lián)條件和篩選條件,對(duì)用戶來說已經(jīng)是過濾好的復(fù)合條件的結(jié)果集。

  • 安全:使用視圖的用戶只能訪問他們被允許查詢的結(jié)果集,對(duì)表的權(quán)限管理并不能限制到某個(gè)行某個(gè)列,但是通過視圖就可以簡(jiǎn)單的實(shí)現(xiàn)。

  • 數(shù)據(jù)獨(dú)立:一旦視圖的結(jié)構(gòu)確定了,可以屏蔽表結(jié)構(gòu)變化對(duì)用戶的影響,源表增加列對(duì)視圖沒有影響:源表修改列名,則可以通過修改視圖來解決,不會(huì)造成對(duì)訪問者的影響。

視圖的語法

創(chuàng)建視圖

CREATE?[OR?REPLACE]?[ALGORITHM?=?{UNDEFINED?|?MERGE?|?TEMPTABLE}] VIEW?view_name?[(column_list)] AS?select_statement [WITH?[CASCADED?|?LOCAL]?CHECK?OPTION]

WITH [CASCADED | LOCAL] CHECK OPTION決定了是否允許更新數(shù)據(jù)使記錄不再滿足視圖的條件。

  • LOCAL : 只要滿足本視圖的條件就可以更新。

  • CASCADED : 必須滿足所有針對(duì)該視圖的所有視圖的條件才可以更新。 CASCADED為默認(rèn)值。

創(chuàng)建視圖及查詢視圖:

mysql中的視圖語法是什么

對(duì)視圖進(jìn)行更新操作:

mysql中的視圖語法是什么

發(fā)現(xiàn)視圖更新了,查詢一下原始表:

mysql中的視圖語法是什么

發(fā)現(xiàn)原始表也被改變了,由此可見對(duì)視圖的修改會(huì)影響基本表,(視圖具體能不能更新還要看WITH [CASCADED | LOCAL] CHECK OPTION的設(shè)置),雖然視圖可以被更新,但是不建議更新,因?yàn)橐晥D就是用來簡(jiǎn)化查詢的。

修改視圖語法:

ALTER?[ALGORITHM?=?{UNDEFINED?|?MERGE?|?TEMPTABLE}] VIEW?view_name?[(column_list)] AS?select_statement [WITH?[CASCADED?|?LOCAL]?CHECK?OPTION]

查看視圖:

使用 SHOW TABLES 命令的時(shí)候不僅顯示表的名字,同時(shí)也會(huì)顯示視圖的名字:

mysql中的視圖語法是什么

使用SHOW CREATE VIEW + 視圖名 這個(gè)命令可以查詢到創(chuàng)建視圖時(shí)執(zhí)行的語句:

mysql中的視圖語法是什么

刪除視圖:

語法:

DROP?VIEW?[IF?EXISTS]?view_name?[,?view_name]?...[RESTRICT?|?CASCADE]

刪除視圖:

mysql中的視圖語法是什么

以上就是

? 版權(quán)聲明
THE END
喜歡就支持一下吧
點(diǎn)贊15 分享