《Oracle数据库开发实用教程》-刘竹林-电子教案 第8章

上传人:E**** 文档编号:89432923 上传时间:2019-05-25 格式:PPT 页数:23 大小:348KB
返回 下载 相关 举报
《Oracle数据库开发实用教程》-刘竹林-电子教案 第8章_第1页
第1页 / 共23页
《Oracle数据库开发实用教程》-刘竹林-电子教案 第8章_第2页
第2页 / 共23页
《Oracle数据库开发实用教程》-刘竹林-电子教案 第8章_第3页
第3页 / 共23页
《Oracle数据库开发实用教程》-刘竹林-电子教案 第8章_第4页
第4页 / 共23页
《Oracle数据库开发实用教程》-刘竹林-电子教案 第8章_第5页
第5页 / 共23页
点击查看更多>>
资源描述

《《Oracle数据库开发实用教程》-刘竹林-电子教案 第8章》由会员分享,可在线阅读,更多相关《《Oracle数据库开发实用教程》-刘竹林-电子教案 第8章(23页珍藏版)》请在金锄头文库上搜索。

1、D,第8章 数据库对象,学习要点 数据库方案 创建表 创建视图,本章主要内容 数据库方案 表 视图 索引,B,8.1 数据库方案 什么是方案?方案是用户使用的一系列数据库对象的集合。而用户是用来连接数据库并能够存取数据库对象的。 一个用户一般对应一个方案,该用户的方案名等于用户名,并作为该用户的缺省方案。这也就是在企业管理器的方案下看到方案名都为数据库用户名的原因。 如果SCOTT用户创建了表EMP,那么SCOTT就是表EMP的属主,在SCOTT访问SCOTT用户下的EMP表时不用在表名前面加上表的属主: SELECT * FROM EMP; 如果其他用户要访问表EMP,要在表名前面加上表的属

2、主: SELECT * FROM scott.emp; 否则会显示“没有此表”。,B,8.2 表 8.2.1 表的定义 表是Oracle数据库最基本的对象,其他许多数据库对象(如索引、视图)都以表为基础。表被用于实际存储数据。表中有列,列中存储多行数据。在关系数据库中,不同表中的数据彼此之间可能存在一定的关系。 从用户角度看,表中存储的数据的逻辑结构是一张二维表,即:表由行和列两部分组成,表通过行和列来组织数据。通常称表中的一行为一条记录,称表中的一列为一个列。一条记录描述一个实体,一个列用于描述实体的一个属性。每个列具有列名、列数据类型、列长度、约束条件、默认值等,这些内容在创建表时确定。,

3、8.2.2 表的建立 创建表是使用CREATE TABLE命令完成的。创建表时Oracle会为该表分配相应的表段。表段的名称与表名相同,并且所有的数据都会被存放到该表段中。 【例】 SQLCREATE TABLE department ( DeptId number(9) NOT NULL,Name varchar2(20),Address varchar2(30) ); 表已创建。 在连接到数据库的用户中创建了一个名为department的表。列的定义包含在括号中,每个列之间用逗号隔开。必须为每一个列指定一种数据类型。,8.2.3 表的修改 表在创建之后可以进行修改,如添加或删除表中的列、修

4、改表中的列,对表进行重新命名和重新组织等。 1添加列 如果想在一个表中保存实体的新属性,就需要在表中增加新的列。新添加的列总是位于表的末尾。对于现有行,新增列的值为NULL,即无值。,【例】给表department 增加列leader(部门领导)和UPDATEDATE(修改日期)。 SQLALTER TABLE department ADD (leader varchar2(20),UPDATEDATE DATE DEFAULT sysdate ); 表已更改。,C,2修改列 如果要调整一个表中某些列的数据类型、长度和默认值,就需要修改这些列的属性。 【例】将department表的DEPTI

5、D列的数据类型改为char(6),将address列的数据类型改为varchar2(40)。 SQLALTER TABLE department modify (deptid char(6),address varchar2(40) ); 表已更改。,3删除列 当不再需要某些列时,可以将其删除。 【例】删除表department的 updatedate 列。 SQLALTER TABLE department DROP (updatedate) CASCADE CONSTRAINTS; 表已更改。,D,8.2.4 表的删除 1DELETE,TRUNCATE 只删除表的内容,而保留表的结构。使用

6、DELETE语句。 【例】删除表department 的所有数据。 SQLDELETE FROM department; 已删除两行。,C,2DROP 删除整个表。当不再需要某个表时,可以将该表删除。 【例】删除表department。 SQLDROP TABLE department; 表已删除。,A,8.3 视图 8.3.1 视图的定义 视图是查看和操作表中数据的一种方式。视图(view)是由SELECT子查询语句定义的一个逻辑表,只有定义而无数据,是一个虚表。因为在创建视图时,只是将视图的定义信息保存到数据字典中,并不将实际的数据复制到任何地方,即不需要在表空间中为视图分配存储空间。视图

7、并不保存任何数据,通过视图操作的数据仍然保存在表中。 例如,EMP表中包含8列数据,但人力资源部只需要其中的5个列,就可以基于EMP表创建一个只包含这5个列的视图,以便人力资源部查询。 那么EMP 就是基表。所以视图是基于基表的一个虚表。,C,8.3.2 视图的创建 如果要在当前方案中创建视图,要求用户必须具有CREATE VIEW系统权限;如果要在其他方案中创建视图,要求用户必须具有CREATE ANY VIEW系统权限。 可以使用CREATE VIEW语句创建视图。创建视图时,视图的名称和列名必须符合表的命名规则。 【例】创建一个视图v_ppp,它的基表是EMP,把基表的列empno,en

8、ame,job,hiredate,deptno 作为视图的列。 SQLCONNECT system/color 已连接。 SQLCREATE VIEW v_ppp AS SELECT empno,ename,job,hiredate,deptno FROM scott.emp; 视图已创建。,8.3.3 视图的修改 创建视图后可能要改变视图的定义,如修改列名或修改所对应的查询语句。由于视图只是一个虚表,其中没有数据,所以更改视图只是改变数据字典中对该视图的定义信息,视图的所有基础对象都不会受到影响。 修改现有的视图可以执行CREATE OR REPLACE VIEW语句。 【例】创建视图v_p

9、pp。从表emp 选择ename,job,deptno字段作为视图v_ppp。 SQLCREATE OR REPLACE VIEW v_ppp AS SELECT ename,job,deptno FROM scott.emp; 视图已创建。,8.3.4 视图的删除 可以删除当前模式中的任何视图。如果要删除其他模式中的视图,必须拥有DROP ANY VIEW系统权限。使用DROP VIEW语句删除视图。视图被删除后,该视图的定义会从词典中被删除,并且在该视图上授予的权限也将被删除。 【例】删除视图v_ppp。 SQLDROP VIEW v_ppp; 视图已删除。,8.4 索引,8.4.1 索引

10、的分类 索引有如下几种类型:单列索引与复合索引、B-树索引、唯一索引与非唯一索引、位图索引、HASH索引、索引编排表、反转键索引、基于函数的索引、分区索引、本地和全局索引。 本章主要介绍单列索引与复合索引、唯一索引与非唯一索引、B-树索引、位图索引、函数索引。,1单列索引与复合索引 一个索引可以由一个或多个列组成,用来创建索引的列称为“索引列”。单列索引是基于单个列所创建的索引,复合索引是基于两列或多列所创建的索引。 2唯一索引与非唯一索引 唯一索引是索引列值不能重复的索引,非唯一索引是索引列值可以重复的索引。无论是唯一索引还是非唯一索引,索引列都允许NULL。默认情况下Oracle创建的索引

11、是非唯一索引。唯一索引与非唯一索引都只是针对B-树索引而言。,3B-树索引 B-树索引是Oracle中最常用的一种索引。在使用CREATE INDEX语句创建索引时,默认创建的索引就是B-树索引。B-树索引可以是单列索引或复合索引、唯一索引或非唯一索引。 B-树索引按照B-树结构(B-树算法)组织并存放索引数据。所以B-树索引主要依赖其组织和存放索引数据的算法来实现快速检索功能。,4位图索引 基数是指某个列可能拥有的不重复数值的个数。比如sex列的基数为2(性别只能是男或女两种选项)。在B-树索引中,是通过在索引中保存排序过的索引列及其对应的RowID来实现的。但是,对于一些基数很小的列,这种

12、处理方式的效率可能会很低。因此对于基数很小的列,如果要创建索引,就应该特意建立位图索引,而不是默认的B-树索引。,5函数索引 在Oracle中不仅能够直接对表中的列创建索引,还可以对包含列的函数或表达式创建索引,这种索引称为“函数索引”。函数索引既可以采用普通的B-树索引,也可以采用位图索引。,创建索引时会对全表进行扫描,对索引列的数据进行排序,为索引分配存储空间,将索引的定义保存到数据字典中。 【例】在同一张表上创建多个索引,但要求列的组合必须不同。 SQLCREATE INDEX idx_emp_1 ON EMP(ename); SQLCREATE INDEX idx_emp_2 ON E

13、MP(ename,job); SQLCREATE INDEX idx_emp_3 ON EMP(job,ename);,8.4.2 索引的创建,8.4.3 索引的删除,当不再需要使用索引时,应该删除该索引,以释放其所占用的空间。如果索引是使用CREATE INDEX预计创建的,则可以使用DROP INDEX语句删除索引。如果要在自己的方案中删除索引,需要具有DROP INDEX系统权限;如果要在其他用户的方案中删除索引,需要具有DROP ANY INDEX系统权限。 【例】删除索引funidx_emp_empno。 SQLDROP INDEX funidx_emp_empno; 索引已删除。 此外,删除一个表时,所有基于该表的索引也会被自动删除。,8.5 本章小结 本章主要介绍了数据库的表,视图和索引的创建和管理。 此外还介绍了索引的类型:单列索引与复合索引、唯一索引与非唯一索引、B-树索引、位图索引、函数索引。,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

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