ORACLE数据库管理系统的逻辑组成

上传人:野鹰 文档编号:3123234 上传时间:2017-07-30 格式:PPT 页数:51 大小:1.16MB
返回 下载 相关 举报
ORACLE数据库管理系统的逻辑组成_第1页
第1页 / 共51页
ORACLE数据库管理系统的逻辑组成_第2页
第2页 / 共51页
ORACLE数据库管理系统的逻辑组成_第3页
第3页 / 共51页
ORACLE数据库管理系统的逻辑组成_第4页
第4页 / 共51页
ORACLE数据库管理系统的逻辑组成_第5页
第5页 / 共51页
点击查看更多>>
资源描述

《ORACLE数据库管理系统的逻辑组成》由会员分享,可在线阅读,更多相关《ORACLE数据库管理系统的逻辑组成(51页珍藏版)》请在金锄头文库上搜索。

1、Oracle数据库管理系统的逻辑结构,Owner:庞家进,Oracle逻辑结构(用户层),Oracle 视图(View),1,Oracle 表(Table),2,Oracle 索引(Index),3,Oracle 序数(Sequence),4,Oracle 视图(View),查看视图信息 使用数据字典视图 dba_viewsDBA视图描述数据库中的所有视图 all_viewsALL视图描述用户“可访问的”视图 user_viewsUSER视图描述“用户拥有的”视图 dba_tab_columnsDBA视图描述数据库中的所有视图的列(或表的列) all_tab_columnsALL视图描述用户“

2、可访问的”视图的列(或表的列) user_tab_columnsUSER视图描述“用户拥有的”视图的列(或表的列) dba_updatable_columns显示数据库所有视图中的所有列的可更新状态 all_updatable_columns显示用户可访问的视图中的所有列的可更新状态 user_updatable_columns显示用户拥有的视图中的所有列的可更新状态,Oracle 视图(View),创建视图完整语法: create or replace force view schema. view_name (column1,column2,.) as select . with chec

3、k option constraint constraint_name with read only ;例子: create view vw_emp_check as select empno, ename, job, hiredate, deptno from emp where deptno =10 with check option constraint vw_emp_chk ; -创建检查视图:对通过视图进行的增删改操作进行检查, 要求增删改操作的数据必须是select查询所能查询到的数据。,Oracle 视图(View),or replace: 如果存在同名的视图, 则使用新视图替代

4、已有的视图 force: 强制创建视图,不考虑基表是否存在,也不考虑是否具有使用基表的权限 column1,column2,.:视图的列名, 列名的个数必须与select查询中列的个数相同; 如果select查询包含函数或表达式, 则必须为其定义列名. 此时, 既可以用column1, column2指定列名, 也可以在select查询中指定列名. with check option: 指定对视图执行的DML操作必须满足“视图子查询”的条件即,对通过视图进行的增删改操作进行检查,要求增删改操作的数据, 必须是select查询所能查询到的数据, 否则不允许操作并返回错误提示. 默认情况下, 在增

5、删改之前并不会检查这些行是否能被select查询检索到. constraint constraint_name 定义约束的名字 with read only:创建的视图只能用于查询数据, 而不能用于更改数据. 与with check option 是排斥的,Oracle 视图(View),1.3 删除视图 可以删除当前模式中的任何视图; 如果要删除其他模式中的视图,必须拥有DROP ANY VIEW系统权限; 视图被删除后,该视图的定义会从词典中被删除,并且在该视图上授予的“权限”也将被删除。 视图被删除后,其他引用该视图的视图及存储过程等都会失效。 示例1:drop view vw_test

6、_tab;,Oracle 视图(View),视图的重新编译语法:alter view 视图名 compile; 作用:当视图依赖的基表改变后,视图会“失效”。为了确保这种改变“不影响”视图和依 赖于该视图的 其他对象,应该使用 alter view 语句“明确的重新编译”该视图,从而在运行视图前发现重新编译的错误。视图被重新编译后,若发现错误,则依赖该视图的对象也会失效;若没有错误,视图会变为“有效”。 权限:为了重新编译其他模式中的视图,必须拥有alter any table系统权限。 注意:当访问基表改变后的视图时,oracle会“自动重新编译”这些视图。例子: alter table t

7、est_tab modify (c2 varchar2(30);修改c2列的长度 select last_ddl_time,object_name,status from user_objects where object_name=V_TEST_TAB;视图的状态:失效,Oracle 视图(View),在视图上执行DML操作的步骤和原理 第一步:将针对视图的SQL语句与视图的定义语句(保存在数据字典中)“合并”成一条SQL语句 第二步:在内存结构的共享SQL区中“解析”(并优化)合并后的SQL语句 第三步:“执行”SQL语句示例:create view v_emp as select emp

8、no,ename,loc from employees emp,departments dept where emp.deptno=dept.deptno and dept.deptno=10; 当用户执行如下查询语句时: select ename from v_emp where empno=9876; oracle将把这条SQL语句与视图定义语句“合并”成如下查询语句: select ename from employees emp,departments dept where emp.deptno=dept.deptno and dept.deptno=10 and empno=9876

9、; 然后,解析(并优化)合并后的查询语句,并执行查询语句,Oracle 视图(View),如果创建连接视图的select查询“不包含”如下结构, 并且遵守连接视图的“更新准则”,则这样的连接视图是“可更新”的: 之一:集合运算符(union,intersect,minus) 之二:DISTINCT关键字 之三:GROUP BY,ORDER BY,CONNECT BY或START WITH子句 之四:子查询 之五:分组函数 之六:需要更新的列不是由“列表达式”定义的 之七:基表中所有NOT NULL列均属于该视图,Oracle 视图(View),连接视图的更新准则 insert准则: 在inse

10、rt语句中不能使用“非键值保存表”中的列(包括“连接列”); 执行insert操作的视图,至少应该“包含”键值保存表中所有设置了约束的列 如果在定义连接视图时使用了WITH CHECK OPTION 选项, 则“不能”针对连接视图执行insert操作 update准则 键值保存表中的列是可以更新的; 如果在定义连接视图时使用了WITH CHECK OPTION 选项, 则连接视图中的连接列(一般就是“共有列”)和基表中的“其他共有列”是“ 不可”更新的, 连接列和共有列之外的其他列是“可以”更新的 delete准则 如果在定义连接视图时使用了WITH CHECK OPTION 选项, 依然“可

11、以”针对连接视图执行delete操作 如果连接视图中的一个“基表的键”(主键、唯一键)在它的视图中仍然存在, 并且“基表的键”仍然是“连接视图中的键”(主键、唯一键); 即,某列在基表中是主键|唯一键,在视图中仍然是主键|唯一键 则称这个基表为“键值保存表”。,Oracle 表(Table),数字字典(user_objects)dba_tablesUser_tablesall_tablesdba_tab_columnsuser_tab_columnsall_tab_columns,Oracle 表(Table),数据表的介绍 数据表是数据库中一个非常重要的对象,是其他对象的基础。没有数据表,关

12、键字、主键、索引等也就无从谈起。在数据库画板中可以显示数据库中的所有数据表,创建数据表,修改表的定义等数据表是数据库中一个非常重要的对象,是其他对象的基础。 数据表(或称表)是数据库最重要的组成部分之一。数据库只是一个框架,数据表才是其实质内容。根据信息的分类情况,一个数据库中可能包含若干个数据表。数据表是用行(字段)和列(属性)构成的一张二维表。,Oracle 表(Table),一般方式创建表 表名最大长度为30个字符。在同一个用户下(同一个数据库),表不能重名,但不同用户表的名称可以相重。另外,表的名称不能使用Oracle的保留字。在一张表中最多可以包含2000列。语法:CREATE TABLE 表名(列名 数据类型 DEFAULT 表达式 COLUMN CONSTRAINT,TABLE CONSTRAINT,TABLE_PARTITION_CLAUSE); DEFAULT 表达式:用来定义列的默认值。COLUMN CONSTRAINT:用来定义列级的约束条件。TABLE CONSTRAINT:用来定义表级的约束条件。TABLE_PARTITION_CLAUSE:定义表的分区子句。,

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号