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