您好,登錄后才能下訂單哦!
小編給大家分享一下數(shù)據(jù)庫視圖和表的區(qū)別有哪些,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
區(qū)別:1、視圖是已經(jīng)編譯好的sql語句,表不是;2、視圖沒有實際的物理記錄,表有;3、表是內(nèi)容,視圖是窗口;4、表占用物理空間,視圖不占用物理空間;5、表是概念模式,視圖是外模式;6、表屬于全局模式中的表,視圖屬于局部模式的表等等。
本教程操作環(huán)境:windows7系統(tǒng)、mysql8、Dell G3電腦。
視圖是已經(jīng)編譯好的sql語句,而表不是;
視圖沒有實際的物理記錄,而表有;
表是內(nèi)容,視圖是窗口;
表占用物理空間而視圖不占用物理空間,視圖只是邏輯概念的存在,表可以及時對它進(jìn)行修改,但視圖只能用創(chuàng)建的語句來修改;
表是三級模式結(jié)構(gòu)中的概念模式,視圖是外模式;
視圖是查看數(shù)據(jù)表的一種方法,可以查詢數(shù)據(jù)表中某些字段構(gòu)成的數(shù)據(jù),只是一些SQL語句的集合,從安全的角度說,視圖可以不給用戶接觸數(shù)據(jù)表,從而不知道表結(jié)構(gòu);
表屬于全局模式中的表,是實表,視圖屬于局部模式的表,是虛表;
視圖的建立和刪除只影響視圖本身,不影響對應(yīng)的基本表;
不能對視圖進(jìn)行update或者insert into操作。
1、視圖(view)是在基本表之上建立的表,它的結(jié)構(gòu)(即所定義的列)和內(nèi)容(即所有數(shù)據(jù)行)都來自基本表,它依據(jù)基本表存在而存在;
2、一個視圖可以對應(yīng)一個基本表,也可以對應(yīng)多個基本表;
3、視圖是基本表的抽象和在邏輯意義上建立的新關(guān)系。
總結(jié):
視圖是一個子查詢,性能肯定會比直接查詢要低(盡管sql內(nèi)部有優(yōu)化),所以使用視圖時有一個必須要注意的,就是不要嵌套使用查詢,尤其是復(fù)雜查詢。
1、當(dāng)一個查詢需要頻頻的作為子查詢使用時,視圖可以簡化代碼,直接調(diào)用而不是每次都去重復(fù)寫這個東西。
2、系統(tǒng)的數(shù)據(jù)庫管理員需要給他人提供一張表的某兩列數(shù)據(jù),而不希望他可以看到其他任何數(shù)據(jù),這時可以建一個只有這兩列數(shù)據(jù)的視圖,然后把視圖公布給他。
對視圖的查詢語句進(jìn)行優(yōu)化。
通常來說直接查詢和查詢視圖是沒有什么區(qū)別的(sql 本身會進(jìn)行優(yōu)化),除非是視圖嵌套了視圖,或者子查詢很復(fù)雜要計算。
特別說明:
每次SELECT視圖的時候,視圖都會重新計算創(chuàng)建它的規(guī)則(sql算法),如果算法復(fù)雜,數(shù)據(jù)量大,就會比較慢,那樣每次就很慢了。
而且,表的索引對于視圖view來說是無效的,它是全表掃描的。
數(shù)據(jù)庫是Oracle,使用的試圖工具是免費版Navicat。
定位到指定數(shù)據(jù),點擊視圖,右邊展示所有當(dāng)前數(shù)據(jù)庫的視圖,雙擊后打開視圖窗口,和表看起來并無區(qū)別:
Ctrl+D 即可進(jìn)入視圖的SQL語句進(jìn)行查看,如下:
以上是“數(shù)據(jù)庫視圖和表的區(qū)別有哪些”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學(xué)習(xí)更多知識,歡迎關(guān)注億速云行業(yè)資訊頻道!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。