什么是視圖【View】
站在用戶的角度思考問題,與客戶深入溝通,找到清水網(wǎng)站設計與清水網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗,讓設計與互聯(lián)網(wǎng)技術(shù)結(jié)合,創(chuàng)造個性化、用戶體驗好的作品,建站類型包括:網(wǎng)站建設、做網(wǎng)站、企業(yè)官網(wǎng)、英文網(wǎng)站、手機端網(wǎng)站、網(wǎng)站推廣、申請域名、網(wǎng)站空間、企業(yè)郵箱。業(yè)務覆蓋清水地區(qū)。
(1)視圖是一種虛表
(2)視圖建立在已有表的基礎(chǔ)上, 視圖賴以建立的這些表稱為基表
(3)向視圖提供數(shù)據(jù)內(nèi)容的語句為 SELECT 語句,可以將視圖理解為存儲起來的 SELECT 語句
(4)視圖向用戶提供基表數(shù)據(jù)的另一種表現(xiàn)形式
(5)視圖沒有存儲真正的數(shù)據(jù),真正的數(shù)據(jù)還是存儲在基表中
(6)程序員雖然操作的是視圖,但最終視圖還會轉(zhuǎn)成操作基表
(7)一個基表可以有0個或多個視圖
什么情況下會用到視圖
(1)如果你不想讓用戶看到所有數(shù)據(jù)(字段,記錄),只想讓用戶看到某些的數(shù)據(jù)時,此時可以使用視圖
(2)當你需要減化SQL查詢語句的編寫時,可以使用視圖,但不提高查詢效率
視圖應用領(lǐng)域
(1)銀行,電信,金屬,證券軍事等不便讓用戶知道所有數(shù)據(jù)的項目中
視圖的作用
(1)限制數(shù)據(jù)訪問
(2)簡化復雜查詢
(3)提供數(shù)據(jù)的相互獨立
(4)同樣的數(shù)據(jù),可以有不同的顯示方式
基于emp表所有列,創(chuàng)建視圖emp_view_1,
create view 視圖名 as select對一張或多張基表的查詢
create view emp_view_1 as select * from emp;
默認情況下,普通用戶無權(quán)創(chuàng)建視圖,得讓sysdba為你分配creare view的權(quán)限
以sysdba身份,授權(quán)scott用戶create view權(quán)限
grant create view to scott;
以sysdba身份,撤銷scott用戶create view權(quán)限
revoke create view from scott;
基于emp表指定列,創(chuàng)建視圖emp_view_2,該視圖包含編號/姓名/工資/年薪/年收入(查詢中使用列別名)
create view emp_view_2 as select empno "編號",ename "姓名",sal "工資",sal*12 "年薪",sal*12+NVL(comm,0) "年收入" from emp;
基于emp表指定列,創(chuàng)建視圖emp_view_3(a,b,c,d,e),包含編號/姓名/工資/年薪/年收入(視圖中使用列名)
create view emp_view_3(a,b,c,d,e) as select empno "編號",ename "姓名",sal "工資",sal*12 "年薪",sal*12+NVL(comm,0) "年收入" from emp;
查詢emp_view_3創(chuàng)建視圖的結(jié)構(gòu)
desc emp_view_3;
修改emp_view_3(id,name,salary,annual,income)視圖,
create or replace view 視圖名 as 子查詢
create or replace view emp_view_3(id,name,salary,annual,income) as select empno "編號",ename "姓名",sal "工資",sal*12 "年薪",sal*12+NVL(comm,0) "年收入" from emp;
查詢emp表,求出各部門的最低工資,最高工資,平均工資
select min(sal),max(sal),round(avg(sal),0),deptno from emp group by deptno;
創(chuàng)建視圖emp_view_4,視圖中包含各部門的最低工資,最高工資,平均工資
create or replace view emp_view_4 as select deptno "部門號",min(sal) "最低工資",max(sal) "最高工資",round(avg(sal),0) "平均工資" from emp group by deptno;
創(chuàng)建視圖emp_view_5,視圖中包含員工編號,姓名,工資,部門名,工資等級
create or replace view emp_view_5 as select e.empno "編號",e.ename "姓名",e.sal "工資",d.dname "部門名",s.grade "工資等級" from emp e,dept d,salgrade s where (e.deptno=d.deptno) and (e.sal between s.losal and s.hisal);
刪除視圖emp_view_1中的7788號員工的記錄,使用delete操作,會影響基表嗎
delete from emp_view_1 where empno=7788;
寫法正確,會影響基表
修改emp_view_1為只讀視圖【with read only】,再執(zhí)行上述delete操作,還行嗎?
create or replace view emp_view_1 as select * from emp with read only;
不能進行delete操作了
將【整個】視圖刪除,會影響表嗎?
不會影響基表
刪除視圖,會進入回收站嗎?
不會進入回收站
刪除基表會影響視圖嗎?
會影響視圖
閃回基表后,視圖有影響嗎?
視圖又可以正常工作了
名稱欄目:Oracle系列:(22)視圖
當前URL:http://jinyejixie.com/article0/gpgsoo.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供外貿(mào)網(wǎng)站建設、用戶體驗、動態(tài)網(wǎng)站、云服務器、商城網(wǎng)站、服務器托管
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)