国产激情自拍_国产9色视频_丁香花在线电影小说观看 _久久久久国产精品嫩草影院

首頁 > 數據庫 > MySQL > 正文

mysql視圖原理與用法實例小結

2024-07-25 19:08:16
字體:
來源:轉載
供稿:網友

本文實例總結了mysql視圖原理與用法。分享給大家供大家參考,具體如下:

一、什么是視圖

視圖是指計算機數據庫中的視圖,是一個虛擬表,其內容由查詢定義。同真實的表一樣,視圖包含一系列帶有名稱的列和行數據。但是,視圖并不在數據庫中以存儲的數據值集形式存在。行和列數據來自由定義視圖的查詢所引用的表,并且在引用視圖時動態生成。簡單的來說視圖是由其定義結果組成的表;

例子:定一班級表class(ID,name) 學生表 student(id,class_id,name);

當數據表結構很復雜,但我們只關心其中一部分數據的時候就可以使用視圖,定義關心的數據

創建視圖:

復制代碼 代碼如下:
create view v_stu as select  c.name as c_name ,s.name as stu_name from student  s,class  c where c.id = s.class_id

 

查詢視圖 v_stu

select * from v_stu

 

c_name stu_name
wu 一班
li 二班

 

二、為什么使用視圖

1.安全性。一般是這樣做的:創建一個視圖,定義好該視圖所操作的數據。之后將用戶權限與視圖綁定。這樣的方式是使用到

了一個特性:grant語句可以針對視圖進行授予權限。

2.查詢性能提高。

3.有靈活性的功能需求后,需要改動表的結構而導致工作量比較大。那么可以使用虛擬表的形式達到少修改的效果。

這是在實際開發中比較有用的

例子:假如因為某種需要,a表與b表需要進行合并起來組成一個新的表c。最后a表與b表都不會存在了。而由于原來程序中編寫sql分別是基于a表與b表查詢的,這就意味著需要重新編寫大量的sql(改成向c表去操作數據)。而通過視圖就可以做到不修改。定義兩個視圖名字還是原來的表名a和b。a、b視圖完成從c表中取出內容。

說明:使用這樣的解決方式,基于對視圖的細節了解越詳細越好。因為使用視圖還是與使用表的語法上沒區別。比如視圖名a,那么查詢還是"select * from a"。

4.復雜的查詢需求??梢赃M行問題分解,然后將創建多個視圖獲取數據。將視圖聯合起來就能得到需要的結果了。

視圖的工作機制:當調用視圖的時候,才會執行視圖中的sql,進行取數據操作。視圖的內容沒有存儲,而是在視圖被引用的時候才派生出數據。這樣不會占用空間,由于是即時引用,視圖的內容總是與真實表的內容是一致的。視圖這樣設計有什么好處?節省空間,內容是總是一致的話,那么我們不需要維護視圖的內容,維護好真實表的內容,就可以保證視圖的完整性了。

三、視圖的執行方式

視圖中是沒有保存真實的數據的,只是引用了真實表中的數據,其引用的數據有其定義決定,當我們進行查詢視圖其實是從定義中取數據;

MySQL 中會有infomation_schema 這么一個數據庫,它是mysql自帶的一個數據庫,存儲mysql數據庫的一些元數據,所謂的元數據是指的是mysql的表信息。視圖信息、列信息等。簡單的說就相當于mysql數據庫的一個目錄。所有的視圖在views 表中都有存儲說明;從這里我們可以看出mysql 的工作機制;

select * from v_stu;

v_stu也可以是一個表名,由于視圖和表的物理結構不同,表中可以查出真實的數據,而視圖需要查找到是定義,從而得到需要的數據,我們怎么知道v_stu是一個視圖呢?是因為有一個查看目錄的例程在做這件事。

視圖機制:

視圖處理有兩種機制,替換式和具化式;

① 替換式:操作視圖時,視圖名直接被視圖定義給替換掉,結果就變成select * from (select  c.name as c_name ,s.name as stu_name from student  s,class  c where c.id = s.class_id),在提交給mysql執行;

② 具化式:mysql先得到了視圖執行的結果,該結果形成一個中間結果暫時存在內存中。之后,外面的select語句就調用了這些中間結果(臨時表)。

看起來都是要得到結果,形式上有區別,好像沒體會到本質上的區別。兩種方式又有什么樣的不同呢?

替換方式,將視圖公式替換后,當成一個整體sql進行處理了。具體化方式,先處理視圖結果,后處理外面的查詢需求。

替換方式可以總結為,先準備,后執行。

具體化方式總結理解為,分開處理。

哪種方式好?不知道。mysql會自己確定使用哪種方式進行處理的。自己在定義視圖的時候也可以指定使用何種方式。

例子:

語法:

CREATE [ALGORITHM]={UNDEFINED|MERGE|TEMPTABLE}]VIEW 視圖名 [(屬性清單)]AS SELECT 語句[WITH [CASCADED|LOCAL] CHECK OPTION];

ALGORITHM有三個參數分別是:merge、TEMPTABLE、UNDEFINED

merge:處理方式替換式,可以進行更新真實表中的數據;

TEMPTABLE:具化式,由于數據存儲在臨時表中,所以不可以進行更新操作!

當你的參數定義是UNDEFINED(沒有定義ALGORITHM參數)。mysql更傾向于選擇替換方式。是因為它更加有效。

例子:

create ALGORITHM=merge view v_stu as select c.name as c_name ,s.name as stu_name from student s,class c where c.id = s.class_idupdate v_stu set c_name = '' where c_name ='';

執行成功

create ALGORITHM=TEMPTABLEview v_stu as select c.name as c_name ,s.name as stu_name from student s,class c where c.id = s.class_id

執行失敗,不可以更新!

 

希望本文所述對大家MySQL數據庫計有所幫助。


注:相關教程知識閱讀請移步到MYSQL教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
国产激情自拍_国产9色视频_丁香花在线电影小说观看 _久久久久国产精品嫩草影院
精品卡1卡2卡三卡免费网站| 综合激情亚洲| 91看片在线观看| 最近免费中文字幕大全免费第三页 | 6699久久国产精品免费| 精品伦理一区二区| 四虎成人免费| 最新亚洲精品国自产在线观看| 国产三级在线免费| 亚洲成av人影片在线观看| 欧美亚洲另类在线观看| 欧美日韩**字幕一区| 国产卡二和卡三的视频| 精品入口麻豆传煤| 久久久久久91精品色婷婷| 国产污污在线观看| 波多野结衣中文字幕久久| 国产一级黄色大片| 欧美日韩性视频一区二区三区| 国产亚洲精品久久久久久青梅 | 中文字幕成人乱码在线电影| 免费在线黄色网址| 国产黄色片中文字幕| 久久国产精品久久久久久小说| 国产传媒在线播放| 国内自拍视频在线观看| 在线视频三区| 国产三级av在线| 国产免费麻豆视频| 99re6在线视频精品免费| 国产尤物一区二区三区| 在线观看国产视频| 中文字幕av网| 91三级在线| 精品av中文字幕在线毛片| 天堂中文字幕在线| 亚洲视频在线观看不卡| 国产精品剧情一区二区三区| 黄色片大全在线观看| www.操操操.com| 操人视频91| 日本高清不卡中文字幕| 日本视频三区| 女同一区二区免费aⅴ| 99在线播放| 在线观看中文字幕的网站| 国产黄色在线| 精品999视频| 亚洲欧美日韩综合精品网| av免费在线免费| yjizz视频网站在线播放| 91高清国产| 伊人免费视频| 青草视频在线播放| 国产毛片毛片毛片| 国产导航在线| v天堂福利视频在线观看| 亚洲国产精华液| 免费观看v片在线观看| 成人免费一区二区三区视频网站| 欧洲有码在线视频| 最近中文字幕在线中文视频 | 国产精品伦一区二区三区级视频频 | 国产一级影片| 精品视频在线一区二区| 日本调教视频在线观看| 国产免费黄视频在线观看| 国产精品免费91| 日本电影全部在线观看网站视频| 免费在线播放av| 国产精品美女视频免费观看软件 | 97福利电影| 免费在线看v| 国产三区视频在线观看| 99色在线观看| 最好看更新中文字幕| 精品51国产黑色丝袜高跟鞋| 丁香视频免费观看| 中文一区在线观看| 国产一级黄色电影| 青青草原av在线| 中文天堂av| 国产一级免费看| 久热精品免费视频| 天堂中文在线观看| 在线午夜影院| 国产成人天天5g影院| 美女网站在线观看| 在线中文免费视频| 国产变态拳头交视频一区二区| baoyu777.永久免费视频| 7777在线| 91亚洲精选| 国产h在线观看| 国产对白叫床清晰在线播放| 中文字幕免费中文| 午夜伦全在线观看| 黄污在线观看| 黄色片大全在线观看| 九九热视频精品在线观看| 欧美日韩亚洲第一页| av在线首页| 一区二区精品区| 在线免费国产视频| 亚洲字幕成人中文在线观看| 97在线免费| www免费在线观看| 超碰97国产精品人人cao| www免费在线观看视频| 人xxxx性xxxxx欧美| 日本欧美在线视频免费观看| 青青青国产视频| 久久久久久77777| 丁香花视频在线观看| 国产三区视频在线观看| 精品推荐国产麻豆剧传媒| 在线激情网站| 午夜在线视频| 国产乱xxⅹxx国语对白| 国产一二三四| 亚洲精品国自产拍在线观看| 全网国产福利在线播放| 国产美女视频一区二区二三区| 国产一级激情| 亚洲欧美一区二区三区在线播放| www.狠狠色.com| 国产日韩网站| 女同一区二区免费aⅴ| 国产一二区视频| 99reav在线| 五月婷婷在线观看| 性网站在线看| 国产美女视频网站| 伊人电影在线观看| 国产一二区在线观看| 日本片在线看| 国产精品国产国产aⅴ| 黄网站app在线观看下载视频大全官网| 国产色在线播放| 欧美啪啪精品| 国产对白叫床清晰在线播放| 久久国产热视频| 在线观看视频污| 国产激情自拍| 中文字幕成人乱码在线电影| 久热免费在线视频| 日本18视频网站| 国产对白国语对白| 中文字幕视频在线| 午夜免费福利在线观看| www.九九热.com| 日本视频在线| gogogogo高清视频在线| 一级黄色av| 精品av中文字幕在线毛片| 国产激情二区| 国产一级在线观看| 国产午夜在线视频| 国产色a在线| 国产精品欧美色图| 国产精品毛片一区二区三区四区| 成年人在线观看| 午夜视频在线看| 99热最新网址| 国产极品嫩模在线视频一区| 国产视频中文字幕在线观看| 国产图片综合| 国产不卡一卡2卡三卡4卡5卡在线| 国产精品视频一区二区图片| 国产福利在线播放麻豆| 精品一二三四| 亚洲永久免费网站| 欧美日韩亚洲第一页| 久久国产综合视频| 最新黄网在线观看| 国产福利免费在线观看| 在线免费黄色毛片| 在线视频中文字幕| 免费99热在线观看| 国产呻吟对白刺激无套视频在线| 国产成人精品综合网站| 99精品老司机免费视频| 热99在线观看| 国产探花视频在线观看| 一区二区精品区| 国内a∨免费播放| 国产福利在线观看| 欧美日韩亚洲第一页| 99热在线观看免费| 91亚洲欧美| 国产免费视频| 一本免费视频| 黄色片av在线| 在线播放黄色网址| 尤物在线网址| 免费99热在线观看| aaa大片在线观看| 国产一区精品| 麻豆av在线| 四虎www视频|