create
創(chuàng)新互聯(lián)公司專注于荔灣企業(yè)網(wǎng)站建設(shè),自適應(yīng)網(wǎng)站建設(shè),購物商城網(wǎng)站建設(shè)。荔灣網(wǎng)站建設(shè)公司,為荔灣等地區(qū)提供建站服務(wù)。全流程定制網(wǎng)站建設(shè),專業(yè)設(shè)計(jì),全程項(xiàng)目跟蹤,創(chuàng)新互聯(lián)公司專業(yè)和態(tài)度為您提供的服務(wù)
or
replace
view
視圖名
as
...;
基本的創(chuàng)建命令:
比如:創(chuàng)建表book的一張視圖
create
or
replace
view_book
as
select
*
from
book
where
book_id
='001';
使用視圖,就用select
*
from
view_book;
當(dāng)然了,使用
圖形化界面
更方便。
CREATE [OR REPLACE] [FORCE|NOFORCE] VIEW view_name
[(alias[, alias]...)]
AS subquery
[WITH CHECK OPTION [CONSTRAINT constraint]]
[WITH READ ONLY]
OR REPLACE :若所創(chuàng)建的試圖已經(jīng)存在,ORACLE自動(dòng)重建該視圖;
FORCE :不管基表是否存在ORACLE都會(huì)自動(dòng)創(chuàng)建該視圖;
NOFORCE :只有基表都存在ORACLE才會(huì)創(chuàng)建該視圖:
alias :為視圖產(chǎn)生的列定義的別名;
subquery :一條完整的SELECT語句,可以在該語句中定義別名;
WITH CHECK OPTION :插入或修改的數(shù)據(jù)行必須滿足視圖定義的約束;
WITH READ ONLY :該視圖上不能進(jìn)行任何DML操作。
CREATE OR REPLACE VIEW dept_sum_vw
(name,minsal,maxsal,avgsal)
AS
SELECT d.dname,min(e.sal),max(e.sal),avg(e.sal)
FROM emp e,dept d
WHERE e.deptno=d.deptno
GROUP BY d.dname;
--給用戶授權(quán)創(chuàng)建視圖
-- grant create all view to zdgshr; 所有數(shù)據(jù)庫都能創(chuàng)建視圖的用戶
grant create view to zdgshr;
--創(chuàng)建簡單視圖
create view temp
as
select * from zd_member_basic_info;
--測(cè)試
select * from temp where rownum=1;
--創(chuàng)建簡單視圖:只讀
create or replace view temp1
as
select id,job_number,name,dept_id from zd_member_basic_info
with read only;
--測(cè)試
insert into temp1(id,job_number,name,dept_id) values(1,0,'張三',1300);
視圖的刪除:
DROP VIEW VIEW_NAME語句刪除視圖。
刪除視圖的定義不影響基表中的數(shù)據(jù)。
只有視圖所有者和具備DROP VIEW權(quán)限的用戶可以刪除視圖。
視圖被刪除后,基于被刪除視圖的其他視圖或應(yīng)用將無效。
四、視圖分為簡單視圖和復(fù)雜視圖。
簡單視圖只從單表里獲取數(shù)據(jù);復(fù)雜視圖從多表里獲取數(shù)據(jù)。
簡單視圖不包含函數(shù)和數(shù)據(jù)組;復(fù)雜視圖包含函數(shù)和數(shù)據(jù)組。
簡單視圖可以實(shí)現(xiàn)DML操作;復(fù)雜視圖不可以。
create or replace view temp1
as
select distinct name,job_number,dept_id from zd_member_basic_info
with read only;
delete from zd_member_basic_info where name='而過';
create or replace view temp
as
select * from zd_member_basic_info order by name;
方法和詳細(xì)的操作步驟如下:
1、第一步,通過pl
/ sql登錄到oracle數(shù)據(jù)庫,見下圖,轉(zhuǎn)到下面的步驟。
2、第二步,完成上述步驟后,輸入sql以查詢?cè)搸斓乃幸晥D,elect * from all_views t,并要求所有者在結(jié)果中代表不同的用戶,見下圖,轉(zhuǎn)到下面的步驟。
3、第三步,完成上述步驟后,如果查看用戶的所有視圖,執(zhí)行sql,select * from?user_views t,可以看到用戶尚未創(chuàng)建視圖,見下圖,轉(zhuǎn)到下面的步驟。
4、第四步,完成上述步驟后,如果要查看庫,則執(zhí)行sql,代碼見下圖。這樣,就解決了這個(gè)問題了。