如果您已經創建了在Oracle SQL視圖像甲骨文指定的其他標準的SQL視圖
create view view_item as
select *
from employees
然後,你可以這樣調用它select * from view_item
。然而,我想知道它是否能夠進一步指定一些creteria這不是初始視圖規範如
select * from view_item where name='Mark'
除非我已指定它到視圖預先這一個將不起作用的一部分。
如果您已經創建了在Oracle SQL視圖像甲骨文指定的其他標準的SQL視圖
create view view_item as
select *
from employees
然後,你可以這樣調用它select * from view_item
。然而,我想知道它是否能夠進一步指定一些creteria這不是初始視圖規範如
select * from view_item where name='Mark'
除非我已指定它到視圖預先這一個將不起作用的一部分。
視圖是被保存在這樣您運行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'
讓我們把它furthere,假設您創建的視圖與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很酷:)
你應該玩它來準確地瞭解後臺發生了什麼,因爲你可以使用它來獲得權限和其他東西。
是的。我沒有意識到它看起來像一個表格,你可以從中進一步指定標準。但爲什麼我不應該使用select *作爲StephaneM建議? – user3017335
這取決於需求...如果你用一個視圖來縮短你寫的東西 - 你應該把最嚴格的條件,儘管如果你使用它作爲permision,答案會改變(而且你必須查詢來自不同的用戶,只有在視圖上纔有「選擇」權限,而不是在基本表上) – evenro
如果你要描述你的目標是什麼,爲什麼你要使用視圖,我將能夠更有幫助:) – evenro
是的,那是可能的。你試過了嗎? –
爲什麼它不工作?只要員工中有一個名字叫'姓'... – StephaneM
我試過了,但它告訴我ora-00904 employees.name:無效標識符,然後是00904.00000 - 「%s」:無效標識符 – user3017335