《Oracle数据库实用教程(第二版)》-唐远新-电子教案(含源代码) 第05章 表

上传人:E**** 文档编号:89405185 上传时间:2019-05-24 格式:PPT 页数:57 大小:956.50KB
返回 下载 相关 举报
《Oracle数据库实用教程(第二版)》-唐远新-电子教案(含源代码) 第05章  表_第1页
第1页 / 共57页
《Oracle数据库实用教程(第二版)》-唐远新-电子教案(含源代码) 第05章  表_第2页
第2页 / 共57页
《Oracle数据库实用教程(第二版)》-唐远新-电子教案(含源代码) 第05章  表_第3页
第3页 / 共57页
《Oracle数据库实用教程(第二版)》-唐远新-电子教案(含源代码) 第05章  表_第4页
第4页 / 共57页
《Oracle数据库实用教程(第二版)》-唐远新-电子教案(含源代码) 第05章  表_第5页
第5页 / 共57页
点击查看更多>>
资源描述

《《Oracle数据库实用教程(第二版)》-唐远新-电子教案(含源代码) 第05章 表》由会员分享,可在线阅读,更多相关《《Oracle数据库实用教程(第二版)》-唐远新-电子教案(含源代码) 第05章 表(57页珍藏版)》请在金锄头文库上搜索。

1、Oracle数据库实用教程 (第二版),唐远新 曲卫平 李晓峰等编著 中国水利水电出版社 2009.6,第5章 表,表 TABLE 索引 INDEX 视图 VIEW 序列 SEQUENCE 用户 USER 约束 CONSTRAINT 表空间 TABLESPACE 回退段 ROLLBACK SEGMENT 同义词 SYNONYM 数据库链接 DATABASE LINK 聚簇 CLUSTER 分区 PARTITION 函数/过程/包 FUNCTION/PROCEDURE/PACKAGE 触发器 TRIGGER 类型 TYPE,5.1 Oracle数据库方案对象与数据类型,常用方案对象类型,包括如下

2、几种表类型 关系表 临时表 按索引组织的表(IOT) 外部表 对象表与嵌套表,1.数据表类型,常用关系表、按索引组织的表、对象表与嵌套表存储用户永久数据,关系表可分为如下3种: 规则表 分区表 簇表,表结构中建议使用的数据类型 VARCHAR2 可变长字符串类型,4KB DATE 固定长度(7B)的日期型。注意存储与使用格式 TIMESTAMP 时间戳类型,可更精确的存储与表示时间 NUMBER 数字型,可存放实型和整型 BLOB 大二进制对象类型,4GB CLOB 大字符串对象类型,4GB NCLOB 多字节字符集的CLOB,4GB BFILE 外部二进制文件类型,只读,大小与OS有关 RO

3、WID 存储记录行的物理地址(2进制表示),固定为10个字节,2.Oracle数据类型,表结构中不建议使用的数据类型 CHAR 定长字符类型,2KB VARCHAR (同VARCHAR2)可变长字符串类型,4KB LONG 可变长字符类型,2GB RAW 可变长二进制数据类型,4KB LONG RAW 可变长二进制数据类型,2GB,建议使用LOB类型代替LONG类型,2.Oracle数据类型,数据库中的每一条记录有唯一的ROWID值,表示了记录的具体位置,因此又称它为记录的物理地址,TIMESTAMP 数据类型 (1) TIMESTAMP是DATE的扩展,可指定秒的计量精度至小数点后9位 (2

4、) TIMESTAMP和TIMESTAMP WITH LOCAL TIME ZONE可用于主键,TIMESTAMP WITH TIME ZONE不能被用于主键,其他数据类型,2.Oracle数据类型,参照表类型 在一个基表的记录中存放被参照表中记录的指针,集合类型(Collection) VARRAY:表中元素个数有限制 TABLE :表中元素个数没有限制,用户自定义数据类型,表命名规则:以字母开头,长度为1-30个字符,可使用A-Z,a-z,0-9,_ ,$和#字符,不能与已经存在的当前用户的其他数据库对象同名,不能使用Oracle的保留字作为表名,表名不区分大小写,5.2 创建表的语法,可

5、用SYSDATE、USER等作为列的缺省值,用户应获得CREATE TABLE系统特权,语法图符号 方框:保留关键字 圆圈:界限符 圆弧方框:需要由其他语法图说明的语法成分 箭头:连接指向下一个语法组成成分,创建表的语法图,CREATE GLOBAL TEMPORARY TABLE schema.table (relational_properties) ON COMMIT DELETE | PRESERVE ROWS physical_properties table_properties;,创建表的语法图,relational_properties语法图,创建表的语法图,physical_

6、properties语法图,创建表的语法图,table_properties语法图,最简单的创建二维关系表的方法是不指定物理存储特性,也不指定分区属性,建立的表将使用系统默认的参数。,5.3 基本关系表,CREATE TABLE 表名 ( 列名 类型 NULL|NOT NULL PRIMARY KEY, 列名 类型 NULL|NOT NULL ,表级完整性约束 );,操作用户需要有在相应表空间中创建对象的权限,例5.1 创建采用系统默认存储参数值的关系表。 EXA_05_01.SQL,1.利用查询创建表,通过子查询创建表 用于保存原始数据以便于恢复 为了得到一个与源表一样结构的表,需要注意如下

7、几点: (1)源表中的LONG型字段不会被复制 (2)源表中的完整性约束不会被复制 (3)通过查询创建的表自动继承源表的存储参数 (4)不能指定新表的列属性,但每列可以取不同于源表列的名称,1.利用查询创建表,语法如下:,CREATE TABLE table ( column , column . ) AS subquery ;,例5.2 为SCOTT的雇员表emp创建一个备份表emp_bak。 CONN scott/tigerorcl DROP TABLE emp_bak; CREATE TABLE emp_bak AS SELECT * FROM emp; DESC emp_bak SEL

8、ECT * FROM emp_bak; EXA_05_02.SQL,2.存储参数,STORAGE子句指定区间存储参数 INITIAL 初始区间大小,以K(KB)或M(MB)为单位 NEXT 下一个区间大小 MINEXTENTS 最小区间数 MAXEXTENTS 最大区间数,用于限制用户的存储空间占用 PCTINCREASE 下一个区间相对于前一个区间大小的增量,Oracle建议PCTINCREASE取0以减少系统开销,2.存储参数,TABLESPACE 指定存储表数据的表空间, PCTFREE 指定每个块用于保留给数据修改空间的百分比, 即保留该百分比的空间暂时不用,当修改数据时 存放扩张出来

9、的数据 PCTUSED 行插入备选块的空间使用阈值的百分比,当数据块 的已用空间比例低于该值时可向其中插入数据 INITRANS 支持并发操作的初始事务量(需为它们保留部分块 空间),默认值为5 MAXTRANS 支持并发操作的最大事务量(需为它们保留部分块 空间),默认值为25,Oracle采取以空间换时间(性能)的存储策略,例5.3 创建表stu2,并指定它的存储参数。 EXA_05_03.SQL,3.完整性约束,约束的类型 NOT NULL:非空约束 UNIQUE:唯一性约束,指定某列值不能重复 PRIMARY KEY:主键约束 FOREIGN KEY:外键约束,也叫参照完整性约束 CH

10、ECK:检查约束,用于限制该列的取值范围 REF:定义列对象的参照关系,完整性约束作为一类系统对象,为便于维护,应给约束起一个名字,典型命名规则为: 表名_约束类型_字段名1 _字段名2,完整性约束的系统命名规则:SYS_Cnnnnnn,3.完整性约束,在列中定义约束的语法图,3.完整性约束,在列之外定义约束的语法图,3.完整性约束,定义参照完整性的语法图,父记录被删除时,子记录的处理方法 ON DELETE CASCADE:删除父记录时级联删除子记录 ON DELETE SET NULL:置子记录的外键列值为NULL,3.完整性约束,完整性约束应用注意点 (1)组合关键字只能定义在表级 (2

11、)系统自动对关键字列建立唯一性索引 (3)一个表只能指定一组关键字,但可以在不同列上建立多个数据唯一性约束 (4)外键(参照完整性)仅依赖于表间或表内的数据关系,而不依赖于物理存储或指针,是纯逻辑上的关系 (5)可在表定义时进行完整性约束定义,或在表定义后使用ALTER TABLE语句定义 (6)可以启用或禁用某个完整性约束,3.完整性约束,数据字典 USER_CONSTRAINTS USER_CONS_COLUMNS,约束类型列(constraint_type)的含义 C:检查约束,包括CHECK 和 NOT NULL P:主键约束(PRIMARY KEY) R:参照完整性约束(REFERE

12、NCES) U:唯一性约束(UNIQUE),查看在哪些列上定义了约束 EXA_05_P90_user_cons_columns.SQL,查看用户定义的约束 EXA_05_P90_user_constraints.SQL,3.完整性约束,应用例子,例5.4 创建学生相关表,在列中定义约束。 EXA_05_04.SQL,例5.5 创建学生相关表,在列之外定义约束。 EXA_05_05.SQL,IOT将部分非键列同主键列一起存储在B-树索引中,5.4 按索引组织的表 (IOT),按索引组织的表必须有主键。,当执行必须基于主键的查询且相关的少量字段经常要一起获取的应用时,采用按索引组织的表特别有效,按

13、索引组织的表(IOT),创建按索引组织的表须提供如下信息 (1) ORGANIZATION INDEX 限定词,表示这是一个按索引组织的表 (2) 表的主键 (3) 可选的行溢出说明子句(OVERFLOW) (4) INCLUDING子句说明哪些非关键字列与关键字列一同存储 (5) PCTTHRESHOLD值,定义在索引数据块中为IOT保留空间的百分比,例5.6 创建学生相关表,在列之外定义约束。 EXA_05_06.SQL,一个簇由共享相同数据块的一组表组成,5.5 簇表,创建簇之后可以基于簇创建表,(1) 减少磁盘I/O次数 (2) 改善了访问簇表的连结所花的时间 (3) 簇键是簇表所共有

14、的,减少了所需存储空间,满足如下条件的表可使用簇 (1) 表主要用于查询,即表不总是被插入或更改 (2) 表中的记录经常被一起或连接查询,在将记录插入到簇表之前,必须创建簇索引 簇表上可创建其他索引,1.创建簇表,创建簇表需经历两个步骤 (1) 创建簇 (2) 基于簇创建簇表,例5.7 创建一个名为emp_dept 的簇,包含deptno列,然后基于该簇创建簇表。 EXA_05_07.SQL,创建簇的简要语法 CREATE CLUSTER schema.cluster ( column datatype , column datatype. ) ;,创建簇表 在表的物理存储部分指明使用某个簇

15、CLUSTER cluster ( column, column . ),2.创建簇索引,簇表只有在创建簇索引之后才可用,例5.8 为emp_dept 簇创建簇索引,并进行簇索引的使用测试。 EXA_05_08.SQL,创建簇索引语法 CREATE INDEX index_name ON CLUSTER cluster_name index_attributes ;,一般应为簇索引指定单独的表空间,3.删除簇,删除簇及其簇索引语法 DROP CLUSTER table INCLUDING TABLES ;,例5.8 创建一个名为emp_dept 的簇,包含deptno列,然后基于该簇创建簇表。

16、 EXA_05_08.SQL,例: DROP CLUSTER emp_dept; DROP CLUSTER emp_dept INCLUDING TABLES;,簇表的删除同普通表的删除 簇索引的删除同普通索引的删除,实现快速存取有大量数据的表的有效方法是创建和使用分区表和分区索引,5.6 分区表,每个分区可以被单独管理,将分区存储到不同的表空间有如下好处 (1) 减少读写数据的I/O操作在多个分区中冲突的可能性 (2) 可以单独备份和恢复每个分区 (3) 控制分区与磁盘驱动器之间的映射,平衡I/O 负载 (4) 改善可管理性、可用性和性能,分区操作标准DML语句来说是透明的,可在DML 中使用分区扩展表以利用分区的优点,范围、散列、列表和组合分区4种分区方法,1.范围分区表,将行映射到基于某列值范围的分区 当数据在整个范围中能被均等地划分成几个小区间时性能最好,创建范围分区时必须指定: (1) 分区方法:范围(by range) (2) 分区的列 (3)

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

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

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