資料庫視圖和表格的差別是什麼

青灯夜游
發布: 2023-01-05 16:13:36
原創
36410 人瀏覽過

區別:1、視圖是已經編譯好的sql語句,表不是;2、視圖沒有實際的實體記錄,表有;3、表是內容,視圖是視窗;4、表佔用實體空間,視圖不佔用實體空間;5、表是概念模式,視圖是外在模式;6、表屬於全域模式中的表,視圖屬於局部模式的表等等。

資料庫視圖和表格的差別是什麼

本教學操作環境:windows7系統、mysql8、Dell G3電腦。

資料庫中檢視和資料表的差異

  • #。檢視是已經編譯好的sql語句,而表格不是;

  • #檢視沒有實際的實體記錄,而表格有;

  • 表格是內容,檢視是視窗;

  • 表佔用物理空間而視圖不佔用物理空間,視圖只是邏輯概念的存在,表可以及時對它進行修改,但視圖只能用創建的語句來修改;

  • 表是三級模式結構中的概念模式,視圖是外模式;

  • #檢視是檢視資料表的方法,可以查詢資料表中某些欄位構成的數據,只是一些SQL語句的集合,從安全的角度說,視圖可以不給使用者接觸資料表,從而不知道表結構;

  • 表屬於全域模式中的表,是實表,視圖屬於局部模式的表,是虛表;

  • 視圖的建立和刪除只影響視圖本身,不影響對應的基本表;

  • 不能對視圖進行update或insert into操作。

資料庫中檢視和資料表的連結

1、檢視(view)是在基本表之上建立的表,它的結構(即所定義的列)和內容(即所有資料行)都來自基本表,它依據基本表存在而存在;
2、一個視圖可以對應一個基本表,也可以對應多個基本表;
3、視圖是基本表的抽象化和在邏輯意義上建立的新關係。
總結:
視圖是一個子查詢,效能肯定會比直接查詢低(儘管sql內部有最佳化),所以使用視圖時有一個必須要注意的,就是不要嵌套使用查詢,尤其是複雜查詢。

視圖有什麼用

1、當一個查詢需要頻頻的作為子查詢使用時,視圖可以簡化程式碼,直接呼叫而不是每次都去重複寫這個東西。
2、系統的資料庫管理員需要給他人提供一張表的某兩列數據,而不希望他可以看到其他任何數據,這時可以建一個只有這兩列數據的視圖,然後把視圖公佈給他。

效能損失解決方案

對檢視的查詢語句進行最佳化。
通常來說直接查詢和查詢視圖是沒有什麼區別的(sql 本身會進行最佳化),除非是視圖嵌套了視圖,或者子查詢很複雜要計算。
特別說明:
每次SELECT視圖的時候,視圖都會重新計算創建它的規則(sql演算法),如果演算法複雜,資料量大,就會比較慢,那樣每次就很慢了。
而且,表的索引對於視圖view來說是無效的,它是全表掃描的。

範例

資料庫是Oracle,使用的試圖工具是免費版Navicat。

定位到指定數據,點擊視圖,右邊展示所有當前資料庫的視圖,雙擊後打開視圖窗口,和表看起來並無區別:

Ctrl D 即可進入視圖的SQL語句進行查看,如下:

相關免費學習推薦:mysql影片教學

以上是資料庫視圖和表格的差別是什麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
最新問題
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!