我知道一个视图和子查询之间的主要区别在于,前者保存为你的数据库的元数据的一部分,以后可以完全凭借自己的某种虚拟表的使用:松散地说,可以将视图看作是一种子查询吗?
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
我投票结束这个问题作为题外话,因为它根本不是一个编程问题。 –
这个问题有什么意义?在很多方面,一个视图就像一个子查询,并且可能会产生与子查询相同的计划,但是这可能太过于狭窄的描述。如果您有问题的理由可能会得出更合适的答案。如果你只是好奇,那么这个问题既过于宽泛,又以意见为基础。 –