如果您在oracle sql中创建了一个视图,如
create view view_item as
select *
from employees
然后你可以像select * from view_item
一样调用它。但是,我想知道是否有可能进一步指定一些不属于初始视图规范的creteria,例如
select * from view_item where name='Mark'
除非我事先将其指定到视图中,否则这个工作不会起作用。
答案 0 :(得分:1)
视图是保存在DBMS上的查询,因此您运行的位置为:
create view view_item as
select *
from employees
您只需将查询保存在DBMS内存中的某处。
当你跑步时:
select * from view_item
你真的跑了:
select *
from employees
但是 - 这是有趣的部分 - 对你而言,它看起来像一张桌子,所以你可以用一个地方附加它:
select * from view_item where name ='Mark'
将映射到
select *
from employees where name = 'Mark'
让我们更进一步,假设您创建了一个带有where子句的视图
create view view_item as
select *
from employees
where salary < 10000
比之前的同一查询:
select * from view_item where name ='Mark'
将映射到
select *
from employees
where salary < 10000 and name = 'Mark'
DBMS非常酷:)
你应该玩它来了解背景中究竟发生了什么,因为你可以将它用于权限和其他事情。