oracle怎么建试图 oracle创建视图时应该注意哪些问题

oracle如何创建视图1
create view V_StudInfo
as
select a.学号,a.姓名,b.课程号,b.课程名,
case when c.成绩 between 90 and 100 then '优'
when c.成绩 between 80 and 89 then '良'
when c.成绩 between 70 and 79 then '中'
when c.成绩 between 60 and 69 then '及格'
else '不及格' end 成绩等级
from 学生表 a,课程表 b, 成绩表 c where a.学号=c.学号
and b.课程号=c.课程号
【oracle怎么建试图 oracle创建视图时应该注意哪些问题】
2
create view V_Stud
as
select a.学号,a.姓名,count(*) 所修科目数,avg(成绩) 平均成绩
from 学生表 a,课程表 b, 成绩表 c where a.学号=c.学号
and b.课程号=c.课程号
and a.学号 in
(select a.学号
from 学生表 a,课程表 b, 成绩表 c where a.学号=c.学号
and b.课程号=c.课程号 and b.课程名='英语' and c.成绩75)
表名和字段名,自己跟你实际的核对一下 , 不同的改一下
oracle如何创建视图?create
or
replace
view
视图名
as
...;
基本的创建命令:
比如:创建表book的一张视图
create
or
replace
view_book
as
select
*
from
book
where
book_id
='001';
使用视图,就用select
*
from
view_book;
当然了,使用
图形化界面
更方便 。
在oracle中创建一个视图CREATE [OR REPLACE] [FORCE|NOFORCE] VIEW view_name
[(alias[, alias]...)]
AS subquery
[WITH CHECK OPTION [CONSTRAINT constraint]]
[WITH READ ONLY]
OR REPLACEoracle怎么建试图:若所创建oracle怎么建试图的试图已经存在oracle怎么建试图,ORACLE自动重建该视图oracle怎么建试图;
FORCE:不管基表是否存在ORACLE都会自动创建该视图;
NOFORCE:只有基表都存在ORACLE才会创建该视图:
alias :为视图产生的列定义的别名;
subquery:一条完整的SELECT语句,可以在该语句中定义别名;
WITH CHECKOPTION :插入或修改的数据行必须满足视图定义的约束;
WITH READ ONLY :该视图上不能进行任何DML操作 。
CREATEORREPLACEVIEWdept_sum_vw
(name,minsal,maxsal,avgsal)
AS
SELECT d.dname,min(e.sal),max(e.sal),avg(e.sal)
FROM emp e,dept d
WHEREe.deptno=d.deptno
GROUPBYd.dname;
--给用户授权创建视图
-- grant create all view to zdgshr;所有数据库都能创建视图的用户
grant create view to zdgshr;
--创建简单视图
create view temp
as
select * from zd_member_basic_info;
--测试
select * from temp where rownum=1;
--创建简单视图:只读
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 VIEWVIEW_NAME语句删除视图 。
删除视图的定义不影响基表中的数据 。
只有视图所有者和具备DROP VIEW权限的用户可以删除视图 。
视图被删除后,基于被删除视图的其oracle怎么建试图他视图或应用将无效 。
四、视图分为简单视图和复杂视图 。
简单视图只从单表里获取数据;复杂视图从多表里获取数据 。
简单视图不包含函数和数据组;复杂视图包含函数和数据组 。
简单视图可以实现DML操作;复杂视图不可以 。
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;
oracle怎么建视图基于表或其他视图来创建视图,目的将一些复杂的查询简化 , 提高查询速度。如:
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这样可以大大的简化程序
Oracle怎么创建跨用户视图Oracle创建跨用户视图,也就是跨模式视图 。
1、首先在A中运行,把读取的权限赋值给B,这样在B中建立视图就可
grant select on A.userA to B; 以读取A中userA表中的数据了 。
2、登录用户B表空间,建立视图 语句如下:
create or
replace view cas_user_view as select
B.LOGIN_NAME,B.PASSWORD,B.LOGIN_FLAG from userB B union select
A.LOGIN_NAME,A.PASSWORD,A.LOGIN_FLAG
from A.userA
A;
到此,在用户B中已建立名为
cas_user_view的视图,可以供A和B同时使用 。
oracle怎么建试图的介绍就聊到这里吧 , 感谢你花时间阅读本站内容 , 更多关于oracle创建视图时应该注意哪些问题、oracle怎么建试图的信息别忘了在本站进行查找喔 。

    推荐阅读