回答
非物化視圖實際上是一個宏 - 引用視圖意味着它包含的查詢被用在視圖引用的地方。 IE:
CREATE VIEW your_vw AS
SELECT *
FROM EMPLOYEES
此:
SELECT * FROM your_vw
...會返回一個結果匹配你會得到什麼使用:
SELECT x.*
FROM (SELECT *
FROM EMPLOYEES) x
我提到的非物化的,但MySQL的不支持物化視圖。其他數據庫(Oracle,SQL Server稱它們爲「索引視圖」,DB2)支持物化視圖,但這不是問題。從現在開始,我只會在寫視圖時談論非物化視圖。
視圖用於封裝/抽象 - 除非用戶有權訪問,否則他們無法查看視圖的基礎查詢是什麼。這取決於具體情況,好/壞 - 如果您擔心提供數據模型信息,在大多數情況下不好。在視圖中使用ORDER BY是不好的,因爲它需要資源來應用訂單,由於封裝/抽象,別人可能會應用訂單 - 這是浪費資源。分層視圖(建立在視圖上的視圖)也是一種不好的做法 - 在視圖運行之前,您不會收到錯誤。
視圖用於提供對數據的訪問,而無需授予對錶的訪問權限,但他們已經發展爲支持更新基礎表。我更願意爲這種情況授予訪問權限。
無論RDBMS如何,View都用於簡化或限制對基礎表的訪問。
一個示例是更改列的名稱,以使它們更容易被最終用戶理解和使用,以及非規範化連接。
另一個是阻止訪問敏感信息(如工資單):從表中刪除所有權限並通過視圖提供受控訪問。
視圖可以更新 - [MySQL](http://dev.mysql.com/doc/refman/5.0/en/create-view.html), Oracle和SQL Server支持該功能。 – 2011-03-26 03:02:34
@OMG小馬:當然。我希望沒有給出他們不可能的印象。我舉了一個例子,他們可能不是。 – 2011-03-26 03:06:24
- 1. 在clojure中使用'綁定'有什麼好的例子?
- 2. 有沒有什麼好的Grails 2例子/演示在那裏?
- 3. 什麼是Java Swing應用程序的好例子?
- 4. 在PHP中使用'func_get_arg'的好例子是什麼?
- 5. 有沒有angular.identity()用例的好例子?
- 6. 什麼網站是JQuery的好例子
- 7. Chrome中的view-response.js有什麼作用?
- 8. 如何在iPhone OS中使用加速度計有什麼好的例子嗎?
- 9. 什麼是應該變成Django Apps的好例子
- 10. 如果我使用rails view form模板,有什麼好處?
- 11. Cont的monad實例有什麼好處?
- 12. {{view}}和{{#view}}之間有什麼區別
- 13. View和View Controller有什麼區別?
- 14. 在良好的架構方面使用DI(Dagger)的好例子是什麼?
- 15. 爲什麼在MySQL中每個有效的SELECT都不是有效的VIEW?
- 16. 有沒有使用'scala.swing'的好例子?
- 17. View的setTag方法有什麼用處?
- 18. 對於不可變單例類有什麼好的用例?
- 19. 爲什麼我應該創建View類的實例?
- 20. asp.net應用程序的好例子?
- 21. 什麼是動態鑄造的一些'很好用'的例子?
- 22. 什麼是使用Yii Framework構建的網站的好例子
- 23. 什麼是JavaScript中的REST API客戶端庫的好例子
- 24. 什麼是Java中繼承的不好的例子?
- 25. MySQL數據庫中TABLE和VIEW之間有什麼區別?
- 26. 這兩個Lua例子有什麼區別?更好嗎?
- 27. 在Rails應用程序中使用葡萄有什麼好處?
- 28. 在Web應用程序中使用EJB有什麼好處?
- 29. 什麼是核心Java庫中繼承的最好例子?
- 30. 爲什麼我應該在這個例子中使用Redux?
作爲給定答案的補充,我想展示一篇文章:http://www.oraclesolved.com/general/Q_25482999-Reasons-for-using-views.jsp PS:當我閱讀該文章並添加它可以在沒有任何註冊的情況下讀取我的書籤:-S – zerkms 2011-03-26 03:13:24