oracle怎么看视图 oracle怎么查看视图

oracle查视图建立时间使用Oracle数据库可以通过查询系统内建的视图user_objects来查询视图的建立时间 。它会显示每个视图的创建日期 , 可以根据这个信息来查看每个视图的建立时间 。
oracle数据库怎样查看视图结构视图是没有结构查询语句的 。因为试图就是一个别名 , 如果真的想查,那么可以通过
select * from user_tab_columns where TABLE_NAME='视图名';查询,这里不仅有表的信息,也有视图的相关信息 。
oracle 如何查找视图名称用Oracle
Enterprise
Manager
Console登录进去,选择你要查找视图的数据库,选择方案----选择和你连接Oracle用户相同的方案,第一个为表 , 第二个为索引,第三个就是视图 , 在这里可以查看,也可以修改 。
oracledba_viewstext怎么看视图的定义
视图(view)oracle怎么看视图,也称虚表, 不占用物理空间oracle怎么看视图,这个也是相对概念,因为视图本身的定义语句还是要存储在数据字典里的 。视图只有逻辑定义 。每次使用的时候, 只是重新执行SQL.
视图是从一个或多个实际表中获得的 , 这些表的数据存放在数据库中 。那些用于产生视图的表叫做该视图的基表 。一个视图也可以从另一个视图中产生 。
视图的定义存在数据库中,与此定义相关的数据并没有再存一份于数据库中 。通过视图看到的数据存放在基表中 。
视图看上去非常象数据库的物理表,对它的操作同任何其它的表一样 。当通过视图修改数据时 , 实际上是在改变基表中的数据oracle怎么看视图;相反地,基表数据的改变也会自动反映在由基表产生的视图中 。由于逻辑上的原因,有些Oracle视图可以修改对应的基表,有些则不能(仅仅能查询) 。
还有一种视图:物化视图(MATERIALIZED VIEW ),也称实体化视图,快照 (8i 以前的说法) ,它是含有数据的,占用存储空间 。关于物化视图,具体参考我的blog:
Oracle 物化视图
javascript:void(0)
二. 视图的作用
2.1 简单性 。
看到的就是需要的 。视图不仅可以简化用户对数据的理解,也可以简化他们的操作 。那些被经常使用的查询可以被定义为视图,从而使得用户不必为以后的操作每次指定全部的条件 。
2.2 安全性 。
通过视图用户只能查询和修改他们所能见到的数据 。数据库中的其它数据则既看不见也取不到 。数据库授权命令可以使每个用户对数据库的检索限制到特定的数据库对象上,但不能授权到数据库特定行和特定的列上 。通过Oracle视图,用户可以被限制在数据的不同子集上:
使用权限可被限制在基表的行的子集上 。
使用权限可被限制在基表的列的子集上 。
使用权限可被限制在基表的行和列的子集上 。
使用权限可被限制在多个基表的连接所限定的行上 。
使用权限可被限制在基表中的数据的统计汇总上 。
使用权限可被限制在另一视图的一个子集上,或是一些视图和基表合并后的子集上 。
视图的安全性可以防止未授权用户查看特定的行或列,是用户只能看到表中特定行的方法如下:
1 在表中增加一个标志用户名的列;
2 建立Oracle视图,是用户只能看到标有自己用户名的行;
3 把视图授权给其他用户 。
2.3 逻辑数据独立性 。
视图可帮助用户屏蔽真实表结构变化带来的影响 。
视图可以使应用程序和数据库表在一定程度上独立 。如果没有视图 , 应用一定是建立在表上的 。有了视图之后,程序可以建立在视图之上,从而程序与数据库表被视图分割开来 。视图可以在以下几个方面使程序与数据独立:
1 如果应用建立在数据库表上,当数据库表发生变化时,可以在表上建立视图,通过视图屏蔽表的变化,从而应用程序可以不动 。
2 如果应用建立在数据库表上,当应用发生变化时 , 可以在表上建立视图,通过视图屏蔽应用的变化,从而使数据库表不动 。
3 如果应用建立在视图上,当数据库表发生变化时,可以在表上修改视图,通过视图屏蔽表的变化,从而应用程序可以不动 。
4 如果应用建立在视图上,当应用发生变化时,可以在表上修改视图,通过视图屏蔽应用的变化,从而数据库可以不动 。
三. 视图的基本语法:
CREATE[OR REPLACE][FORCE][NOFORCE]VIEW view_name
[(column_name)[,….n]]
AS
Select_statement
[WITH CHECK OPTION[CONSTRAINT constraint_name]]
[WITH READ ONLY]
说明:
view_name :视图的名字
column_name: 视图中的列名
在下列情况下 , 必须指定视图列的名称
* 由算术表达式 , 系统内置函数或者常量得到的列
* 共享同一个表名连接得到的列
* 希望视图中的列名与表中的列名不同的时候
REPLACE:如果创建视图时, 已经存在此视图, 则重新创建此视图, 相当于覆盖
FORCE:强制创建视图, 无论的视图所依赖的基表否存在或是否有权限创建
NOFORCE:只有基表存在且具有创建视图权限时, 才可以创建视图
WITH CHECK OPTION指出在视图上所进行的修改都要符合select_statement 所指定的限制条件
WITH READ ONLY只允许查看视图
视图的定义原则:
1. 视图的查询可以使用复杂的 SELECT 语法,包括连接 / 分组查询和子查询;
2. 在没有 WITH CHECK OPTION 和 READ ONLY的情况下,查询中不能使用
ORDER BY子句;
3. 如果没有为 CHECK OPTION 约束命名,系统会自动为之命名,形式为 SYS_Cn;
4. OR REPLACE 选项可以不删除原视图便可更改其定义并重建,或重新授予对象
权限 。
四. 视图操作
视图分为简单视图( 基于单个基表,且不包含函数和数据分组操作 ) 和复杂视图( 基于多个基表或视图).
简单视图可以通过视图修改数据. 这些修改包括插入数据. 更新数据和删除数据. 但是对于复杂视图来说, 通过视图修改数据必须满足一定的规则.
在视图定义中没有设定READ ONLY 的前提下, 如果视图包含了下面的内容, 那么不能通过视图删除表中的数据:
* 分组函数, 如SUM,AVG,MIN,MAX 等
*GROUP BY 子句
* 包含了表达式
* ROWNUM 伪列
插入数据时, 除了满足上面的条件外, 还需要保证那些没有包含在视图定义中的基表的列必须允许空值. 如果在视图定义中还包含了WITH CHECK OPTION 子句, 那么对视图的修改除了前面的那些原则外, 还必须满足指定的约束条件. 个人认为,视图利于查询,不利于修改.
1. 查询视图: 可依赖于多个基表.
SELECT* FROM view_name; /* 类似于查询表数据*/
2. 更新视图的前提:
没有使用连接函数, 集合运算和组函数. 创建视图的select 语句中没有集合函数且没有GROUP BY,ONNECT BY ,START WITH 子句及DISTINCT 关键字. 创建视图的SELECT 语句中不包含从基表列通过计算所得的列. 创建视图没有包含只读属性.
3. 插入数据
INSERTINTOview_name VALUES();
4. 修改数据:
UPDATEview_name SET …
若一个视图依赖于多个基本表, 则一次修改该视图只能修改一个基本表的数据.
5. 删除数据:
Delete from view_name where …
同样, 当视图依赖多个基表时, 不能使用此语句来删除基表中的数据. 只能删除依赖一个基表的数据.
6. 修改视图定义:
修改视图的好处在于, 所有相关的权限都依然存在. 语法同创建视图相同.
7. 删除视图:
DROP VIEW view_name;
只有视图所有者和具备DROP VIEW 权限的用户可以删除视图 。删除视图的定义不影响基表中的数据 。视图被删除后,基于被删除视图的其他视图或应用将无效
oracle如何查询视图连接的数据库Qt之界面数据存储与获?。╱serData)
向busybox中添加自己的applet
oracle内存分析
程序中实现两个DataTable的Left Join效果(修改了,网上第二个DataTable为空,所处的异常)
CompletionService 与 ExecutorService 获取任务执行结果时的区别
CompletionService 和ExecutorService的区别和用法
Java数据库开发
Python安装jpype调用java,安装jaydebeapi通过jdbc连接数据库
7. 进行图片的数据补全和增强(随机亮度,随机饱和度 , 随机翻转) Image.open(进行图片的读入) 2.ImageEnhance.Brightness(亮度变化) 3.ImageEnhance.Contrast(饱和度变化) 4.enhance_image.transpose(图片随机翻转) 5.enhance_image.save(进行图片保存)
数据挖掘 Apriori Algorithm python实现
Thinkphp5.0 控制器向视图view赋值
oracle 查询 函数练习
Hibernate的批量查询——原生sql查询
二十二:视图之add_url_rule和app.route
SQL语句创建数据库以及一些查询练习
Elasticsearch 使用:创建、插入、查询、更新、删除
模糊查询中Like的使用
mvc4中使用部分视图局部刷新实例
oracle(8)视图和查询数据库对象方法
leetcode877
bootstrap-table表格导出
servlet模板
[leetcode-609-Find Duplicate File in System]
SpringBoot 整合Mybatis操作数据库
python基础教程总结12——数据库
day37 02-Hibernate二级缓存:二级缓存的散装数据
Mysql进入数据库
WPF 视图导航
图形学思考 - 聊聊透视图投射矩阵perspective projective matrix
sql日期查询
ABAP-Eclipse ADT中创建ABAP CDS视图
技术小哥用手机实现激光笔,女友直呼:太酷了!
结婚登记人数创36年新低,结婚率下降原因是?
广告合作
发信联系
oracle(8)视图和查询数据库对象方法
扫码查看
视图
学习APP开发,接单挣钱!
视图 view
视图是数据库的对象之一 。视图也叫做虚表,既虚拟表,本质是对应一条select 语句,
select语句的结果集赋予一个名字就是视图的名字 。
作用:
1.可以简化复杂的查询
2.可以限制数据的访问,对基表的其他数据起到安全和保密的作用 。
创建一个 表create table emp(
empno number(6), name char(10), id number(4), deptno number(10), job varchar2(10) );
*创建视图:create view emp_v as
;创建视图时,create对应的表叫做基表 。* 查询视图select *from emp_v ;根据查询所的方式可分为三种视图:1.简单视图:根据单表建立的,且不包含任何函数运算,表达式和分组,既单表的子集 。2.复杂视图:根据单表建立 , 包含有单行函数/表达式/分组的视图 。3.连接视图:基于多表建立的视图 。*删除视图drop view emp_v;
*简单视图可以进行DML操作,但是复杂视图不允许DML操作 。
修改视图:视图的结构取决于对应的子查询,所以修改视图即替换对应
的子查询 。REPLACE
CREATE OR REPLACE VIEW V_EMP_J
AS
SELECT EMPNO,ENAME,SAL
FROM EMP_XIAOJIE;
SELECT * FROM V_EMP_J;
对视图的不当DML操作会污染基表数据:
对简单视图进行DML操作后 , 视图对基表做对应的操作,但是影响的数据对应视图来说
是不可见的,就是对基表数据的污染 。
为了避免视图对基表产生数据的污染 。我们可以对视图添加检查选项要求(检查约束)
使其对视图进行DML时操作时检查视图时操作后是否对操作的数据可见,如果不可见
则不允许操作 。
*简单视图可以进行DML操作,但是复杂视图不允许DML操作 。
视图本身是不包含数据的,只是基表的逻辑映射,所以
对视图执行DML操作时,实际上操作的是基表 。
对视图进行DML操作,实际上是对基表进行DML操作 ,
如果不去约束,我们对视图不可视进行DML操作会对
基表的数据产生污染 。
对视图进行DML操作基本原则:
*简单视图可以进行DML操作,但是有以下情况除外 ,
基表中定义了非空列,但是简单视图对应的 SELECT
语句没有包含这个非空列,导致非空列对于视图不可视,
这时无法对视图进行 INSERT 操作 。
*复杂视图不允许DML操作
*DML操作不能违反基表的约束条件 。
创建具有 CHECK OPTION 的约束视图 。
CREATE OR REPLACE VIEW V_EMP_J
AS
SELECT EMPNO,ENAME,SAL
FROM EMP_XIAOJIE
WHERE SAL3000
WITH CHECK OPTION; --添加约束后无法对基表进行数据污染 。
SELECT * FROM V_EMP_J;
创建具有 READ ONLY 约束的视图 。
对简单进行DML操作是合法的但是不安全,如果没有在视图进行DML
操作的必要的话,要在建立视图时声明只读来避免这种情况,包含
基表数据不会被非法的修改 。
无法对只读视图执行DML操作 。
CREATE OR REPLACE VIEW V_EMP_J
AS
SELECT EMPNO,ENAME,SAL
FROM EMP_XIAOJIE
WHERE SAL3000
WITH READ ONLY;--用来只读
数据字典:
数据字典是一系列的表,这些表的数据由数据库自行维护 , 记录清单清单信息 。
1.在数据字典 user_objects 中查询所有视图:
SELECT object_name FROM user_objects
where object_type='VIEW';--查找所有视图
view:视图 table:表 sequence:序列 index:索引
2.在数据字典 USER_VIEWS 查询所有的指定视图:
3.在数据字典 user_updatable_columns 中查询视图:
SELECT COLUMN_NAME,INSERTABLE,UPDATABLE,DELETABLE --看操作权限
FROM USER_UPDATABLE_COLUMNS
WHERE TABLE_NAME='V_EMP_J';
oracle 怎么查看已有的物化视图pl/sql
developer
选中这个物化视图,然后点击查看,就能看到创建这个物化视图的语句了
pl/sql
windows
中输入这个物化视图名称有,鼠标右键同样可以查看这个物化视图的创建语句
dbms_metadata.get_ddl
这个函数也可以
【oracle怎么看视图 oracle怎么查看视图】关于oracle怎么看视图和oracle怎么查看视图的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息 , 记得收藏关注本站 。

    推荐阅读