Oracle中視圖和同義字的區別

來源:互聯網
上載者:User

視圖和同義字分別都是資料庫中的對象名稱,它們都不對應實際的資料存放區,都依賴其他對象的存在而存在。
視圖:視圖可以被看成是虛擬表或儲存查詢。除非是索引檢視表,否則視圖的資料不會作為非重複Object Storage Service在資料庫中。一般是基於一個或多個資料表經資料查詢語句構建而成;視圖可以再被用於資料查詢語句中。

同義字:是結構描述範圍物件的另一名稱。通過使用同義字,用戶端應用程式可以使用由一部分組成的名稱來引用基底物件,而不必使用由兩部分、三部分或四部分組成的名稱。可以理解為是對資料庫中一個對象的捷徑或者在特定範圍內的別名;不限於資料表,幾乎所有的資料庫物件都可以建立同義字。
1.視圖可以對應一張或多張表,同義字只能對應一張表名稱

2.視圖可以設定其他約束條件

3.可以在同義字上建立視圖:
例如,已經存在一個名為synonym_city的同義字和一個名為table_citys的表,可以建立視圖:CREATE OR REPLACE NOFORCE VIEW view_city AS SELECT * FROM synonym_city,table_citys;


4.可以通過對同義字進行任何DML操作,對錶資料進行插入、更新、刪除,通過對視圖只能進行更新和刪除操作。

值得注意的是:視圖和同義字都可以屏蔽使用者訪問其他使用者擁有的表。
例如:現在存在兩個使用者:scott、sys,以sys使用者登入
建立跨使用者表的同義字:
CREATE OR REPLACE PUBLIC SYNONYM SYN_EMP for scott.emp;
建立跨使用者的表的視圖:
CREATE OR REPLACE VIEW view_EMP AS SELECT * FROM scott.emp

然後進行查詢操作:
SELECT * FROM SYN_EMP ;
SELECT * FROM view_EMP ;

查詢結果是一樣的。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.