1、關系視圖:Oracle視圖是作為數據庫對象存在的,因此,創建之後也可以通過工具或數據字典來查看視圖的相關信息。
2、內嵌視圖:在from語句中的可以把表改成壹個子查詢,內嵌視圖為子查詢的壹種,可以與數據表、視圖壹樣作為查詢語句的數據源存在,但在形式上有較大的區別,內嵌視圖不必使用create view命令進行創建,因此,在數據字典中也無法獲得相應信息。
內嵌視圖的特點在於無須創建真正的數據庫對象,而只是封裝查詢,因此會節約數據庫資源,同時不會增加維護成本。但是內嵌視圖不具有可復用性,因此當預期將在多處調用到同壹查詢定義時,還是應該使用關系視圖。
3、對象視圖:對象類型在數據庫編程中有許多好處,但有時,應用程序已經開發完成。為了迎合對象類型而重建數據表是不現實的。對象視圖正是解決這壹問題的優秀策略。
對象視圖創建之後,同樣可以在數據字典中獲得其相應信息。利用Oracle內置視圖user_views可以獲得對象視圖相關信息。Oracle中的對象數據實際仍然以關系數據的形式存儲。
但是,對象的特性,例如繼承、封裝等,都為開發人員提供了更加靈活的處理形式。同樣,可以構造復雜的對象類型來封裝復雜的多表查詢。
4、物化視圖:常用於數據庫的容災,不是傳統意義上虛擬視圖,是實體化視圖,和表壹樣可以存儲數據、查詢數據。主備數據庫數據同步通過物化視圖實現,主備數據庫通過data link連接,在主備數據庫物化視圖進行數據復制。當主數據庫垮掉時,備數據庫接管,實現容災。
擴展資料
視圖可以使應用程序和數據庫表在壹定程度上獨立。如果沒有視圖,應用壹定是建立在表上的。有了視圖之後,程序可以建立在視圖之上,從而程序與數據庫表被視圖分割開來。視圖可以在以下幾個方面使程序與數據獨立:
1、如果應用建立在數據庫表上,當數據庫表發生變化時,可以在表上建立視圖,通過視圖屏蔽表的變化,從而應用程序可以不動。
2、如果應用建立在數據庫表上,當應用發生變化時,可以在表上建立視圖,通過視圖屏蔽應用的變化,從而使數據庫表不動。
3、如果應用建立在視圖上,當數據庫表發生變化時,可以在表上修改視圖,通過視圖屏蔽表的變化,從而應用程序可以不動。
4、如果應用建立在視圖上,當應用發生變化時,可以在表上修改視圖,通過視圖屏蔽應用的變化,從而數據庫可以不動。
百度百科-數據庫視圖
百度百科-視圖