1
10年積累的做網(wǎng)站、成都網(wǎng)站設(shè)計經(jīng)驗,可以快速應(yīng)對客戶對網(wǎng)站的新想法和需求。提供各種問題對應(yīng)的解決方案。讓選擇我們的客戶得到更好、更有力的網(wǎng)絡(luò)服務(wù)。我雖然不認識你,你也不認識我。但先網(wǎng)站制作后付款的網(wǎng)站建設(shè)流程,更有東源免費網(wǎng)站建設(shè)讓你可以放心的選擇與我們合作。
create?view?V_StudInfo
as
select?a.學(xué)號,a.姓名,b.課程號,b.課程名,
case?when?c.成績?between?90?and?100?then?'優(yōu)'
when?c.成績?between?80?and?89?then?'良'
when?c.成績?between?70?and?79?then?'中'
when?c.成績?between?60?and?69?then?'及格'
else?'不及格'?end?成績等級
from?學(xué)生表?a,課程表?b,?成績表?c?where?a.學(xué)號=c.學(xué)號
and?b.課程號=c.課程號
2
create?view?V_Stud
as
select?a.學(xué)號,a.姓名,count(*)?所修科目數(shù),avg(成績)?平均成績
from?學(xué)生表?a,課程表?b,?成績表?c?where?a.學(xué)號=c.學(xué)號
and?b.課程號=c.課程號
and?a.學(xué)號?in
(select?a.學(xué)號
from?學(xué)生表?a,課程表?b,?成績表?c?where?a.學(xué)號=c.學(xué)號
and?b.課程號=c.課程號?and?b.課程名='英語'?and?c.成績75)
表名和字段名,自己跟你實際的核對一下,不同的改一下
oracle物化視圖如何在上億的表建立,操作方法如下。
設(shè)備:聯(lián)想電腦
系統(tǒng):win8
軟件:PL/SQL Developer
1、首先在打開的軟件中,創(chuàng)建手動刷新的物化視圖。
2、查詢物化視圖mv_address中的數(shù)據(jù)。
3、接著向地址表t_address中插入一條數(shù)據(jù)。
4、通過PL/SQL手動刷新物化視圖?;蛘咄ㄟ^命令手動刷新物化視圖(需要在命令窗口中執(zhí)行)。
5、刷新之后,物化視圖中的數(shù)據(jù)才會生成,如下圖所示就完成了。
基于表或其他視圖來創(chuàng)建視圖,目的將一些復(fù)雜的查詢簡化,提高查詢速度 。如:
CREATE VIEW v_name AS SELECT b.dname,a.ename FROM emp a,dept b
WHERE a.deptno=b.deptno ;
查詢部門名和員工名 通過建立視圖,v_name 視圖就等同于SELECT b.dname,a.ename FROM emp a,dept b
WHERE a.deptno=b.deptno 這樣可以大大的簡化程序
create
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自動重建該視圖;
FORCE :不管基表是否存在ORACLE都會自動創(chuàng)建該視圖;
NOFORCE :只有基表都存在ORACLE才會創(chuàng)建該視圖:
alias :為視圖產(chǎn)生的列定義的別名;
subquery :一條完整的SELECT語句,可以在該語句中定義別名;
WITH CHECK OPTION :插入或修改的數(shù)據(jù)行必須滿足視圖定義的約束;
WITH READ ONLY :該視圖上不能進行任何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;
--測試
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;
--測試
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ù)組。
簡單視圖可以實現(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;