我知道一個視圖和子查詢之間的主要區別在於,前者保存爲你的數據庫的元數據的一部分,以後可以完全憑藉自己的某種虛擬表的使用:鬆散地說,可以將視圖看作是一種子查詢嗎?
CREATE VIEW my_view AS
SELECT employee_firstname,
employee_lastname,
employee_salary
FROM employees;
SELECT * FROM my_view; -- This SELECT statement will list all employees
-- along with their salaries, treating my_view as
-- its source of data
但當我們使用視圖作爲更大查詢的一部分時,你認爲可以公平地說,從鬆散的角度來說,視圖只不過是保存的子查詢而已?我問這個問題,因爲我注意到,很多次,我可以很容易地把我的子查詢到的意見(只有這樣才能讓你的SQL代碼更易讀),並有相同的效果。
不僅保存的子查詢,但保存的子查詢,你不能改變 - 即,如果某人創建其中列有限制的看法,你只能訪問視圖,而不是源數據庫,你只需要限制數據訪問。 – Smutje
我投票結束這個問題作爲題外話,因爲它根本不是一個編程問題。 –
這個問題有什麼意義?在很多方面,一個視圖就像一個子查詢,並且可能會產生與子查詢相同的計劃,但是這可能太過於狹窄的描述。如果您有問題的理由可能會得出更合適的答案。如果你只是好奇,那麼這個問題既過於寬泛,又以意見爲基礎。 –