oracle怎么建立视图 oracle建立视图权限

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物化视图如何在上亿的表建立 , 操作方法如下 。
设备:联想电脑
系统:win8
软件:PL/SQL Developer
1、首先在打开的软件中,创建手动刷新的物化视图 。
2、查询物化视图mv_address中的数据 。
3、接着向地址表t_address中插入一条数据 。
4、通过PL/SQL手动刷新物化视图 。或者通过命令手动刷新物化视图(需要在命令窗口中执行) 。
5、刷新之后 , 物化视图中的数据才会生成,如下图所示就完成了 。
Oracle怎么创建跨用户视图Oracle创建跨用户视图,也就是跨模式视图 。
1、首先在A中运行,把读取的权限赋值给B,这样在B中建立视图就可
grant select on A.userA to B; 以读取A中userA表中的数据了 。
【oracle怎么建立视图 oracle建立视图权限】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如何创建视图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.课程号
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怎么建立视图,自己跟你实际的核对一下oracle怎么建立视图,不同的改一下
Oracle中如何建视图Oracle中创建视图
Oracle的数据库对象分为五种:表,视图,序列,索引和同义词 。
视图是基于一个表或多个表或视图的逻辑表,本身不包含数据,通过它可以对表里面的数据进行查询和修改 。视图基于的表称为基表 。
视图是存储在数据字典里的一条select语句 。通过创建视图可以提取数据的逻辑上的集合或组合 。
视图的优点:
1.对数据库的访问,因为视图可以有选择性的选取数据库里的一部分 。
2.用户通过简单的查询可以从复杂查询中得到结果 。
3.维护数据的独立性,试图可从多个表检索数据 。
4.对于相同的数据可产生不同的视图 。
视图分为简单视图和复杂视图:
简单视图只从单表里获取数据
复杂视图从多表
简单视图不包含函数和数据组
复杂视图包含
简单视图可以实现DML操作
复杂视图不可以.
视图的创建:
CREATE [OR REPLACE] [FORCE|NOFORCE] VIEW view_name
[(alias[, alias]...)]
AS subquery
[WITH CHECK OPTION [CONSTRAINT constraint]]
[WITH READ ONLY]
其中:
OR REPLACE:若所创建的试图已经存在,ORACLE自动重建该视图;
FORCE:不管基表是否存在ORACLE都会自动创建该视图;
NOFORCE:只有基表都存在ORACLE才会创建该视图:
alias:为视图产生的列定义的别名;
subquery:一条完整的SELECT语句,可以在该语句中定义别名;
WITH CHECK OPTION :
插入或修改的数据行必须满足视图定义的约束;
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)
FROMemp e,dept d
WHERE e.deptno=d.deptno
GROUP BY d.dname;
视图的定义原则:
1.视图的查询可以使用复杂的SELECT语法 , 包括连接/分组查询和子查询;
2.在没有WITH CHECK OPTION和 READ ONLY 的情况下 , 查询中不能使用
ORDER BY 子句;
3.如果没有为CHECK OPTION约束命名,系统会自动为之命名,形式为SYS_Cn;
4.OR REPLACE选项可以不删除原视图便可更改其定义并重建,或重新授予对象
权限 。
视图的查询:
视图创建成功后,可以从视图中检索数据,这点和从表中检索数据一样 。
还可以查询视图的全部信息和指定的数据行和列 。
如:
检索数据:
SQLSELECT * FROM dept_sum_vw;
查询视图定义:
SELECT view_name,text from user_views;
其中text显示的内容为视图定义的SELECT语句,可通过DESC USER_VIEWS
得到相关信息 。
修改视图:
通过OR REPLACE 重新创建同名视图即可 。
视图上的DML 操作:
DML操作应遵循的原则:
1.简单视图可以执行DML操作;
2.在视图包含GROUP 函数,GROUP BY子句,DISTINCT关键字时不能
删除数据行;
3.在视图不出现下列情况时可通过视图修改基表数据或插入数据:
a.视图中包含GROUP 函数,GROUP BY子句,DISTINCT关键字;
b.使用表达式定义的列;
c.ROWNUM伪列 。
d.基表中未在视图中选择的其他列定义为非空且无默认值 。
视图可用于保持数据库的完整性,但作用有限 。
通过视图执行引用完整性约束可在数据库级执行约束 。
WITH CHECK OPTION 子句限定:
通过视图执行的INSERTS和UPDATES操作不能创建该视图检索不到的数据行,
因为它会对插入或修改的数据行执行完整性约束和数据有效性检查 。
例如:
CREATE OR REPLACE VIEW vw_emp20
AS SELECT * FROM emp
WHERE deptno=20
WITH CHECK OPTION constraint vw_emp20_ck;
视图 已建立 。
查询结果:
SELECT empno,ename,job FROM vw_emp20;
EMPNOENAMEJOB
------------------------------------------------
7369SMITHCLERK
7566JONESMANAGER
7902FORDANALYST
修改:
UPDATE vw_emp20
SETdeptno=20
WHEREempno=7902;
将产生错误:
UPDATE vw_emp20
*
ERROR 位于第一行:
ORA-01402:视图WITH CHECK OPTION 违反WHERE 子句
视图的删除:
DROP VIEW VIEW_NAME语句删除视图 。
删除视图的定义不影响基表中的数据 。
只有视图所有者和具备DROP VIEW权限的用户可以删除视图 。
视图被删除后,基于被删除视图的其他视图或应用将无效 。
oracle如何创建视图?create
or
replace
view
视图名
as
...;
基本oracle怎么建立视图的创建命令:
比如oracle怎么建立视图:创建表book的一张视图
create
or
replace
view_book
as
select
*
from
book
where
book_id
='001';
使用视图oracle怎么建立视图,就用select
*
from
view_book;
当然oracle怎么建立视图了oracle怎么建立视图,使用
图形化界面
更方便 。
oracle怎么建立视图的介绍就聊到这里吧,感谢你花时间阅读本站内容 , 更多关于oracle建立视图权限、oracle怎么建立视图的信息别忘了在本站进行查找喔 。

    推荐阅读