国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數(shù)據(jù)庫 > MySQL > 正文

mysql視圖原理與用法實例小結(jié)

2024-07-24 12:50:24
字體:
供稿:網(wǎng)友

本文實例總結(jié)了mysql視圖原理與用法。,具體如下:

一、什么是視圖

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

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

當數(shù)據(jù)表結(jié)構(gòu)很復(fù)雜,但我們只關(guān)心其中一部分數(shù)據(jù)的時候就可以使用視圖,定義關(guān)心的數(shù)據(jù)

創(chuàng)建視圖:

復(fù)制代碼 代碼如下:
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.安全性。一般是這樣做的:創(chuàng)建一個視圖,定義好該視圖所操作的數(shù)據(jù)。之后將用戶權(quán)限與視圖綁定。這樣的方式是使用到

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

2.查詢性能提高。

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

這是在實際開發(fā)中比較有用的

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

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

4.復(fù)雜的查詢需求。可以進行問題分解,然后將創(chuàng)建多個視圖獲取數(shù)據(jù)。將視圖聯(lián)合起來就能得到需要的結(jié)果了。

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

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 宜城市| 长垣县| 泊头市| 遵化市| 南昌县| 辽中县| 云南省| 海南省| 梅河口市| 根河市| 湖南省| 龙胜| 镇安县| 南陵县| 东方市| 高唐县| 大渡口区| 陕西省| 温泉县| 咸宁市| 门源| 宜兰市| 杭锦后旗| 富阳市| 巩留县| 巴东县| 始兴县| 阿克陶县| 内江市| 台中县| 奇台县| 辽阳县| 宜黄县| 恭城| 凤冈县| 喜德县| 漳浦县| 大厂| 青铜峡市| 兴业县| 平安县|