MySQL視圖的基本操作

  視圖是數(shù)據(jù)庫(kù)中的虛擬表。包含一系列帶有名稱的行和列數(shù)據(jù)。視圖是從一個(gè)或者多個(gè)表中導(dǎo)出的,視圖的行為與表非常相似,用戶可以使用SELECT語(yǔ)句查詢數(shù)據(jù),以及使用INSERT、UPDATE和DELETE修改記錄,視圖使用戶操作更加方便而且保障數(shù)據(jù)庫(kù)系統(tǒng)的安全。

  視圖一旦定義便存儲(chǔ)在數(shù)據(jù)庫(kù)中,與其對(duì)應(yīng)的數(shù)據(jù)并沒(méi)有像表那樣在數(shù)據(jù)庫(kù)中再存儲(chǔ)一份,通過(guò)視圖看到的數(shù)據(jù)只是存放在基本表中的數(shù)據(jù)。對(duì)視圖的操作與對(duì)表的操作一樣,可以對(duì)其進(jìn)行查詢、修改和刪除。當(dāng)對(duì)通過(guò)視圖看到的數(shù)據(jù)進(jìn)行修改時(shí),相應(yīng)的基本表的數(shù)據(jù)也要發(fā)生變化,同時(shí)若基本表的數(shù)據(jù)放生變化,則這種變化也會(huì)自動(dòng)地反應(yīng)到視圖中。

  • 創(chuàng)建視圖

  創(chuàng)建視圖的基本語(yǔ)法格式為:CREATE [OR REPLACE] [ALGORITHM={UNDEFINED|MERGE|TEMPTABLE}] VIEW view_name [(column_list)] AS SELECT_statement [WITH [CASCADED|LOCAL] CHECK OPTION] 其中CREATE用來(lái)創(chuàng)建新的視圖,REPLACE表示替換已經(jīng)創(chuàng)建的視圖,ALGORITHM表示視圖選擇的算法,view_name為視圖名稱,column_list為屬性列,SELECT_statement表示SELECT語(yǔ)句,WITH[CASCADED|LOCAL] CHECK OPTION參數(shù)表示視圖在更新時(shí)保證在視圖的權(quán)限范圍內(nèi)。

  ALGORITHM的取值有3個(gè),分別是UNDEFINED|MERGE|TEMPTABLE,UNDEFINED表示MySQL將自動(dòng)選擇算法,MERGE表示將使用的視圖與視圖定義合并起來(lái),使得視圖定義的某一部分取代語(yǔ)句對(duì)應(yīng)的部分,TEMPTABLE表示將視圖的結(jié)果存入臨時(shí)表,然后用臨時(shí)表來(lái)執(zhí)行語(yǔ)句。

網(wǎng)友評(píng)論