oracle:对视图DML操作
一、對視圖進行DML操作
??1.創建一個視圖v_test
? ?create or replace view v_test
as select *from test where c_sec_code = '00939 HS'
??2.向視圖 v_test中進行insert操作
? ?insert into v_test (c_sec_code,d_sett) values('00939 HS', date'2018-01-01')
?ps:只能對簡單的視圖進行DML操作,復雜的視圖是無法執行DML操作.
?練習: 當前視圖v_test數據
?
視圖v_test的基表test,該表當前數據是:
? ?
?對視圖插入數據
??
?此時查詢視圖,多了一行數據
?查詢基表,多了一行數據
?練習: 當前視圖v_test數據(加上with check option)
?重新創建視圖: create or replace view v_test
as select *from test where c_sec_code = '00939 HS' with check option
? 執行插入語句
with check option對數據進行校驗,如果滿足where條件,才允許插入,否則不允許插入.?
練習(with read only)
?創建視圖
??create or replace view v_test
as select *from test where c_sec_code = '00939 HS' with read only
執行插入語句:insert into v_test (c_sec_code,d_sett) values('00939 HS', date'2018-01-01'),會報錯.因為視圖在創建的時候要求只讀。
? 由于視圖可以是基于多個表的鏈接查詢,所以,視圖可以簡化用戶的查詢,允許用戶從多個表中檢索數據而不需要知道基表是如何連接的。
? 視圖可以有訪問權限,但可以對基表沒有訪問權限,從而限制了數據庫的訪問。?
??簡單的視圖可以實現對基表的DML操作。
當視圖執行DML操作時,同樣受基于表上的約束的限制。
《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀總結
以上是生活随笔為你收集整理的oracle:对视图DML操作的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: c:数据结构-线性表
- 下一篇: python二十八:模块