第7章表-《Oracle数据库基础与应用教程》书籍教案_第1页
第7章表-《Oracle数据库基础与应用教程》书籍教案_第2页
第7章表-《Oracle数据库基础与应用教程》书籍教案_第3页
第7章表-《Oracle数据库基础与应用教程》书籍教案_第4页
第7章表-《Oracle数据库基础与应用教程》书籍教案_第5页
已阅读5页,还剩73页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

《Oracle数据库基础与应用教程》书籍教案人民邮电出版社出版於岳编写作者联系方式:airfish2000@126.com本书内容:本书全面讲述了Oracle数据库的日常管理工作内容。全共14章,包含Oracle简介和安装、Oracle客户端、管理Oracle环境、Oracle体系结构、管理Oracle存储结构、SQL语言、表、约束、视图、同义词和序列、索引、实现数据库安全、DataPump数据导出和导入、数据库备份和恢复。每章结尾提供适量的选择题、简答题和操作题,通过练习和操作实践,帮助读者巩固所学内容。

本书适合Oracle爱好者、Oracle工程师、数据库管理员、培训机构以及大专院校计算机专业教师和学生使用。

第7章

表表简介7.1Oracle内置数据类型7.2创建表7.3修改表7.47.1表简介7.1.1什么是表

表是数据库中一个非常重要的方案对象,被用来存储数据,是Oracle数据库中数据组织的基本单位。

一个表定义包括一个表名和列的集合。列标识表中描述的实体的属性,比如员工表中的employee_id列是指员工实体的员工ID属性。

当创建表的时候,一般会为每一个列指定列名、数据类型、大小、小数位数、默认值等。

如employee_id列指定NUMBER(6)数据类型,表明该列只能包含高达6位数大小的数字数据。大小可以由数据类型预先确定。 一个表只能包含一个虚拟列,虚拟列不占用磁盘空间。 数据库通过计算一组用户指定的表达式或函数生成派生需求上的虚拟列的值。 表创建好之后,可以使用SQL语句进行插入、查询、删除和更新行操作。 行是列信息的集合,对应于一个表中的记录,比如员工表描述指定员工的所有属性。7.1.2表类型

在Oracle数据库中,表可以分为以下几种类型。1.普通表2.索引组织表3.临时表4.外部表5.分区表6.簇表7.2Oracle内置数据类型 创建表的时间需要为列指定数据类型,不同的数据类型存储不同类型的数据。 Oracle内置数据类型有字符数据类型、数字数据类型、日期和时间数据类型、二进制数据类型和大对象数据类型。7.2.1字符数据类型 在Oracle数据库中,字符数据类型存 储数字和字母等组成的字符,常用的字符数 据类型有CHAR、NCHAR、VARCHAR2、 NVARCHAR2和VARCHAR。1.CHAR(size

[BYTE

|

CHAR])2.NCHAR(size)3.VARCHAR2(size

[BYTE

|

CHAR])4.NVARCHAR2(size)5.VARCHAR7.2.2数字数据类型 在Oracle数据库中,数字数据类型所有的数值数据,如整数、分数、双精度数和浮点数等,常用的数字数据类型有NUMBER和FLOAT。1.NUMBER

[(p

[,

s])] 以十进制格式进行储存的数字数据类型,p是指精度(指数字的总位数),s是指刻度范围(小数点右边的位数)。p的范围可以是1~38,s的范围可以是-84~127。 s的默认值是0,如NUMBER(5)、NUMBER。

在指定精度和刻度范围的时候需要遵循以下规则。当s>0时,s表示小数点右边的数字的个数。当一个数字的整数部分的长度

>p-s

时,Oracle就会报错。当一个数字的小数部分的长度

>s

时,Oracle就会舍入。当s<0时,s表示小数点左边的数字的个数,Oracle就对小数点左边的s个数字进行舍入。当s>p时,p表示小数点后第s位向左最多可以有多少位数字,如果大于p则Oracle报错,小数点后s位向右的数字被舍入。2.FLOAT

[(p)] 具有精度p的NUMBER数据类型的子类型。 一个FLOAT值,在内部表示为NUMBER。精度p的范围可以是1~126的二进制数字。 一个FLOAT值是1~22字节。3.INTEGER 简称INT,相当于刻度范围为0的NUMBER数据类型。7.2.3日期和时间数据类型 在Oracle数据库中,日期和时间数据类型存储日期和时间值,常用的日期和时间数据类型有DATE、TIMESTAMP和TIMESTAMPWITHTIMEZONE。7.2.4二进制数据类型 在Oracle数据库中,二进制数据类型存储非结构化数据,常用的二进制数据类型有RAW和LONGRAW。1.RAW(size) 非结构化数据的可变二进制数据,必须为RAW指定size,最大尺寸为2000字节。2.LONGRAW 非结构化数据的可变二进制数据,尺寸可达2GB。 不建议使用LONGRAW数据类型,可以使用BLOB数据类型来代替。7.2.5行数据类型 在Oracle数据库中,表中每一行数据在数据库中的存储位置可以由行的物理地址和逻辑地址表示,这些地址存储在表的ROWID伪列中,常用的行数据类型有ROWID和UROWID。1.ROWID 以64位为基数的字符串,表示一条记录在表中相对唯一的地址值。 该数据类型主要是ROWID伪列返回的值。2.UROWID

[(size)] 以64位为基数的字符串,表示索引组织表的一行的逻辑地址。 可选的大小是UROWID类型的列的大小。 最大尺寸和默认尺寸为4000字节。7.2.6大对象数据类型 在Oracle数据库中,大对象数据类型存储 大对象(LargeOBject,LOB),LOB是为图 像、视频、音频、文本、空间数据设计的,大 对象最大尺寸是(4GB-1)*(数据库块大小), 一般数据库块大小为8K,常用的大对象数据类 型有CLOB、NCLOB、BLOB、BFILE和LONG。1.CLOB2.NCLOB3.BLOB4.BFILE5.LONG7.3创建表 CREATETABLE语句用于创建表。

要在自己的方案中创建表,必须要拥有CREATETABLE系统权限。

要在另一个用户的方案中创建表,必须要拥有CREATEANYTABLE系统权限。

7.4修改表 使用ALTERTABLE语句来改变表的定义。 要修改表,该表必须在自己的方案中,或者必须在表上拥有ALTER对象权限,或者必须要拥有ALTERANYTABLE系统权限。7.4.1设置表的读写模式 指定READONLY把表设置为只读模式。 当表处于只读模式时,不能执行任何DML语句或SELECT...FORUPDATE语句来影响表。只要不修改任何表中的数据就可以执行DDL语句。指定READWRITE把表设置为读/写模式。7.4.2为表指定并行处理 使用PARALLEL在表上为查询和DML操作更改默认并行度。7.4.3启用或禁用与表相关联触发器 使用ENABLEALLTRIGGERS或DISABLEALLTRIGGERS来启用或禁 用与表相关联的所有触发器。 要启用或禁用触发器,触发器必须在自己的方案中,或者必须要拥有ALTERANYTRIGGER系统权限。7.4.4启用或禁用表锁定 如果在操作过程中表被锁定,Oracle数据库只允许在表上进行DDL操作。 在DML操作上不需要这样的表锁定。 Oracle数据库启用表锁定之前,所有目前正在执行的事物必须提交或回滚;指定DISABLETABLELOCK禁用表锁定,从而防止在表上进行DDL操作。 当目标表的表锁定被禁用时,不会执行并行DML操作。7.4.5解除分配未使用的空间 使用DEALLOCATEUNUSED子句明确地释放表的末尾未被使用的空间,以供在表空间中其他段的空间使用。 禁用表锁定以后,不能解除分配未使用的空间。7.4.6标记列为未使用 使用SETUNUSED子句以标记表中的列为未使用。 无法将属于SYS的表中的列标记为未使用。 对于内部的堆组织表,指定SETUNUSED子句实际上并没有从表中的每一行中删除目标列。 可以稍后通过发出ALTERTABLE...DROPUNUSEDCOLUMNS语句删除标记为未使用的列。USER_UNUSED_COL_TABS、ALL_UNUSED_COL_TABS或DBA_UNUSED_COL_

TABS数据字典可以用来列出包含未使用列的所有表。 这些数据字典中的COUNT列显示在表中未使用的列的数量。7.4.7在表中添加、修改和删除列

当修改表的时候,可以在表中添加、修改和删除列。1.添加列2.修改列3.删除列7.4.8为表添加注释 COMMENTON语句用于为表添加描述性的注释信息,这样就可以充分地描述表的内容或用法。 注释内容可以长达4000个字节,必须存储在单引号内。7.4.9移动表到其他表空间 使用MOVE子句可以将表移动到其他的表空间中。7.4.10更改表的日志记录属性 使用LOGGING和NOLOGGING可以更改表的日志记录属性,生成重做日志记录。7.4.11压缩表 使用COMPRESS来指示Oracle数据库是否压缩数据段来减少磁盘和内存的使用。 随着数据库的增长规模,可以考虑压缩表。 压缩表将节省磁盘空间,减少数据库缓冲区高速缓存的使用,并在读取时可以显著加快查询执行。7.4.12收缩表 使用SHRINKSPACE子句可以对表手动收缩空间,只适用于使用自动段管理的表空间中的段。 在默认情况下,Oracle数据库会压缩段,调整高水位,并立即释放空间。压缩段需要先进行行移动(RowMovement),因此必须在收缩表之前启用行移动。

收缩表具有以下限制。不支持对带有基于函数的索引的表进行段收缩。不能为压缩表指定SHRINKSPACE子句。7.4.13重命名列 使用RENAMECOLUMN子句重命名表中的列。 新的列名必须与表中其他列的名称不能相同。7.4.14重命名表

要对表进行重命名,可以通过RENAME和ALTERTABLE...RENAMETO语句来实现。 1.RENAME语句 2.ALTERTABLE...RENAMETO语句7.5截断表 TRUNCATETABLE语句用于从表中删除所有数据。 使用这种方法删除数据,可以比删除并重新创建表更有效。 TRUNCATETABLE语句执行以后不能回滚。7.6删除表 DROPTABLE语句用于删除表,将表移动到回收站或从数据库中完全删除表和它的所有数据。 对于外部表,此语句只删除数据库中表的元数据。 它的实际数据并没有影响,因为它驻留在数据库之外。 要删除表,该表必须在自己的方案中,或者必须要拥有DROPANYTABLE系统权限。

在删除表的时候,将会执行以下操作。删除表中所有的数据。删除与该表有关的索引、触发器和对象权限。从数据字典中删除表的定义。回收分配给表的存储空间。7.7使用OEM管理表7.7.1使用OEM创建表

使用OracleEnterpriseManager按以下步骤创建表。(1)在OracleEnterpriseManager页面中,依次单击【方案】→【数据库对象】→【表】,如图7-1所示,单击【创建】按钮。图7-1表(2)在图7-2所示页面中,指定表组织,在此选择【标准(按堆组织)】单选框,然后单击【继续】按钮。图7-2创建表:表组织(3)在图7-3所示【一般信息】页面中,按以下要求输入内容。图7-3【一般信息】页面(4)在图7-4所示【存储】页面中,指定存储信息,如表空间、区数、空间使用情况、空闲列表、事物处理数、缓冲池和压缩选项等内容。图7-4【存储】页面(5)在图7-5所示【选项】页面中,指定启用行移动、并行和高速缓存选项,然后单击【确定】按钮。图7-5【选项】页面7.7.2使用OEM收缩段 对表进行收缩段操作可以压缩空间碎片,然后将恢复的空间释放到表空间,以此节约空间使用。 使用OracleEnterpriseManager按以下步骤收缩段。(1)在图7-6所示页面中,搜索方案SYS中的表TABLE_1。选择表TABLE_1,在【操作】下拉框中选择【收缩段】,然后单击【开始】按钮。图7-6搜索表(2)在图7-7所示页面中,指定收缩选项,在此选择【压缩段并释放空间】单选框,然后单击【继续】按钮。图7-7收缩段(3)在图7-8所示页面中,指定作业名称和调度选项,然后单击【提交】按钮。图7-8调度(4)在图7-9所示页面中,显示已经成功创建作业,可以看到调度程序作业正在运行。图7-9调度程序作业7.7.3使用OEM删除表 使用

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论