視圖是數(shù)據(jù)庫中的虛擬表。包含一系列帶有名稱的行和列數(shù)據(jù)。視圖是從一個(gè)或者多個(gè)表中導(dǎo)出的,視圖的行為與表非常相似,用戶可以使用SELECT語句查詢數(shù)據(jù),以及使用INSERT、UPDATE和DELETE修改記錄,視圖使用戶操作更加方便而且保障數(shù)據(jù)庫系統(tǒng)的安全。
視圖一旦定義便存儲(chǔ)在數(shù)據(jù)庫中,與其對(duì)應(yīng)的數(shù)據(jù)并沒有像表那樣在數(shù)據(jù)庫中再存儲(chǔ)一份,通過視圖看到的數(shù)據(jù)只是存放在基本表中的數(shù)據(jù)。對(duì)視圖的操作與對(duì)表的操作一樣,可以對(duì)其進(jìn)行查詢、修改和刪除。當(dāng)對(duì)通過視圖看到的數(shù)據(jù)進(jìn)行修改時(shí),相應(yīng)的基本表的數(shù)據(jù)也要發(fā)生變化,同時(shí)若基本表的數(shù)據(jù)放生變化,則這種變化也會(huì)自動(dòng)地反應(yīng)到視圖中。
創(chuàng)建視圖
創(chuàng)建視圖的基本語法格式為:CREATE [OR REPLACE] [ALGORITHM={UNDEFINED|MERGE|TEMPTABLE}] VIEW view_name [(column_list)] AS SELECT_statement [WITH [CASCADED|LOCAL] CHECK OPTION] 其中CREATE用來創(chuàng)建新的視圖,REPLACE表示替換已經(jīng)創(chuàng)建的視圖,ALGORITHM表示視圖選擇的算法,view_name為視圖名稱,column_list為屬性列,SELECT_statement表示SELECT語句,WITH[CASCADED|LOCAL] CHECK OPTION參數(shù)表示視圖在更新時(shí)保證在視圖的權(quán)限范圍內(nèi)。
ALGORITHM的取值有3個(gè),分別是UNDEFINED|MERGE|TEMPTABLE,UNDEFINED表示MySQL將自動(dòng)選擇算法,MERGE表示將使用的視圖與視圖定義合并起來,使得視圖定義的某一部分取代語句對(duì)應(yīng)的部分,TEMPTABLE表示將視圖的結(jié)果存入臨時(shí)表,然后用臨時(shí)表來執(zhí)行語句。
延伸閱讀
- ssh框架 2016-09-30
- 阿里移動(dòng)安全 [無線安全]玩轉(zhuǎn)無線電——不安全的藍(lán)牙鎖 2017-07-26
- 消息隊(duì)列NetMQ 原理分析4-Socket、Session、Option和Pipe 2024-03-26
- Selective Search for Object Recognition 論文筆記【圖片目標(biāo)分割】 2017-07-26
- 詞向量-LRWE模型-更好地識(shí)別反義詞同義詞 2017-07-26
- 從棧不平衡問題 理解 calling convention 2017-07-26
- php imagemagick 處理 圖片剪切、壓縮、合并、插入文本、背景色透明 2017-07-26
- Swift實(shí)現(xiàn)JSON轉(zhuǎn)Model - HandyJSON使用講解 2017-07-26
- 阿里移動(dòng)安全 Android端惡意鎖屏勒索應(yīng)用分析 2017-07-26
- 集合結(jié)合數(shù)據(jù)結(jié)構(gòu)來看看(二) 2017-07-26