第四章Oracle数据库对象

2019-06-17 19:54

第04章 数据库对象

本章课时要求:6课时 本章内容提纲:

表(2课时)

表的概念、基本数据类型

表的种类:基本表,索引表(IOT),聚簇表等 创建表、修改表、删除表、表信息 簇

索引簇:概念、创建索引簇、创建聚簇表、建立簇索引、维护索引簇 散列簇:概念、创建散列簇、维护散列簇 索引(2课时)

索引概念、索引分类、建立索引 修改索引、删除索引、索引信息 视图

视图概念、建立视图、维护视图、视图信息 序列(2课时)

序列概念、创建序列、使用序列、修改序列、删除序列、序列信息 数据库链接

概念、建立、删除、信息 同义词

同义词概念、作用、分类、建立、删除、信息 快照

概念、实例

- 1 -

第04章 数据库对象

4 第04章 数据库对象

表、索引、簇、视图、序列、同义词、链接、快照是Oracle重要的数据库对象。本章具体介绍各种数据库对象的建立、维护等操作。

每个数据库对象都为某个用户所有。用户拥有的全部对象称为模式(schema),模式对象用模式对象名”用户名.对象名”表示。同一用户的对象名必须唯一,不同用户可有相同的对象名。

例如:scott用户和system用户都创建了temp表,它们完整的模式对象名是scott.temp和system.temp;如果scott访问system的temp表,须使用完整的模式对象名system.temp;如果使用自己的对象,既可以使用完整名scott.temp,也可以使用对象名temp。

4.1 表

4.1.1 表的概念

表(TABLE)是数据库的基本数据存储单元,用于存储用户数据。表是由行(row)、列(column)构成,其中行称为记录(record),列称为字段(field);每个列包括列名、数据类型(有的需要指定数据宽度,如果是数值类型,还有精度和刻度)、约束、默认值等。所有列组成表结构(或表定义)。表的形式如下:

sno 2050101 表

2050103 2050107 2050114 sname 柴皓 戈彬 李红梅 欧阳芳 ssex 男 男 女 女 sage 20 21 20 21 saddress 湖南 江西 广东 湖北 行 表结构

4.1.2 基本数据类型

在定义表的每一列时,要给定列名(column),在定义列名时,一般采用英文或汉语拼音的缩写,避免直接使用汉字。在一个系统中,列名的命名要遵守一致的规范,以便相互理解列的含义和作用。

在定义列时,同时要定义列的数据类型(datetype),如果有固定宽度的数据类型,直接指定数据类型,不必定义数据宽度。如日期性date,固定为7字节,不必定义宽度。

- 2 -

第04章 数据库对象

Oracle的基本数据类型及宽度范围列表如下:

数据类型 char(n) varchar2(n) number(p,s) 宽度范围 n=1~2000 n=1~4000 p=1~38 s=-84~127 定长字符串。 变长字符串:根据实际的长度存储。 数值型: m表示精度(precision有效位,不含小数点和符号) s表示刻度(小数位数,-或0表示整数)。 date (固定7B) 日期和时间,从公元前4712年1月1日~公元4712年12月31的合法日期,包括时间:时分秒。 blob clob nclob bfile long (最大4GB) (最大4GB) (最大4GB) (最大4GB) (最大2GB) 内部保存的二进制大对象,可读写查。 内部保存的单字符大对象,可读写查。 内部保存的多字符大对象,可读写查。 外部保存的文件对象,可读查,不能写。 可变长字符列,不能最为查询等搜索的列。是一种较老的数据类型。 raw(n) n=1~2000 可变长二进制数据,保存较小的图形图像、音频视频文件或带格式的文档。是一种较老的数据类型。 long raw (最大2GB) 可变长二进制数据,保存较大的图形图像、音频视频文件或带格式的文档。同一张表中不能同时有long和long raw类型。是一种较老的数据类型。 说明 说明:

(1)char和varchar2的区别:

char是固定长度的字符串类型,不足定义长度,补空格;而varchar2(不要忘记后面2)是变长的字符串类型,以实际长度存储。如使用字段os_name存储’windows’字符串,定义char(10)存储的实际字符串为’windows ’(后有3个空格),其长度为10。而定义varchar2(10)存储的实际字符串是’windows’,其长度是7。在比较字符串时,char类型的字符串比较时要去掉其后的空格(ltrim()函数),如ltrim(os_name)=’windows’;或补足长度os_name=’windows ’。char类型有较快的存储速度,而varchar2可以节省存储空间,并方便字符串比较。

(2)存储大对象的数据类型:

- 3 -

第04章 数据库对象

大对象数据(Large OBject)是指大长度的字符数据或二进制数据。一般大对象列不能见索引或作为查询的条件。其中raw(n),long,long raw是较老的数据类型,在新系统中尽量不要采用。尽量使用clob、nclob、blob、bfile,使用时不设置其宽度,但其最大长度均为4GB。bfile的实际数据存储在操作系统的文件中,所以不能修改其数据。clob、nclob、blob(合称lob)的数据存放在数据库中,可以读写查询。如果lob实际数据长度小于4000字节,则存放在与表相同的段中;如果大于4000字节,则单独建立lob段,并将它们存放在lob段中。clob(character)存放单字节大字符,nclob存放多字节大字符,blob(binary)存放二进制的图形图像、音频视频文件或带格式的文本文件(如Word文件)等。

(3)行的物理位置rowid

Oracle中每一行(记录),都有一个唯一的物理存储位置标识,称为rowid,用于快速存取行数据。对于没有主键(不满足实体完整性)的表,如果有相同的行,可用rowid区别。

rowid占用10B,显示为18个字符。格式如下:

数据对象号 文件号 数据块号 行号 数据对象号:建立表对象时,Oracle为改表分配的唯一数据对象号。

相对文件号:数据文件在表空间中的唯一标识。注意相对文件号与绝对文件号的区别,绝对文件号是数据文件在数据库中的唯一标识。

数据块号:数据文件中,行所在数据块的编号。 行号:行在数据块的序号。

rowid是每行都自动具有的列,而采用SELECT * FROM table_name时不查询该列的值,所以称为伪列。如果用rowid指明要查询该伪列,可显示每列的rowid。如下:

SQL>SELECT ROWID,sno,sname FROM students;

rowid是不好理解的18位符号串,可用dbms_rowid包中的函数解析具体的含义,如下: SQL>SELECT dbms_rowid.rowid_relative_fno(rowid) relative_fno,

dbms_rowid.rowid_block_number(rowid) block_number, dbms_rowid.rowid_row_number(rowid) row_number FROM students;

- 4 -

第04章 数据库对象

4.1.3 表的分类

表的种类较多,根据不同的应用环境,建立满足性能和需求的表。表的种类主要有: (1)基本表:一般形式的数据表,一个数据表对应一个数据段(Segment)。 (2)索引组织表:(Index Organization Table:IOT)数据表创建在索引中。 (3)临时表:存储在临时表空间的表,按会话或事务自动删除

(4)分区表:将一个大表按一定规则分成不同表空间的多个段,称为分区。 (5)聚簇表:将具有相同列的几个表存储在一个段中,以便加快联合查询的速度。 (6)LOB表:有大数据对象的表。

(7)对象表:行由对象(Object)组成的表。

(8)嵌套表:表的列中有许多行,表中有表(Nested)。

本节只讲述基本表、临时表、分区表的建立,索引组织表在讲述索引时介绍,在”簇”一节中单独讲述聚簇表,其它种类的表,可以参考Oracle9i相关书籍。

4.1.4 创建表

建立表的方式有SQL*Plus SQL 语句和Enterprise Manager Console(EMC)的GUI图形方式。 1.建立基本表

CREATE TABLE [user.]tablename

({column datatype [DEFAULT expn] [column_constraint]|[table_constraint]},...) [TABLESPACE tablespace_name]

[PCTFREE n] [PCTUSED n] [INITRANS n][MAXTRANS n] [STORAGE storage_clause] [RECOVERABLE|UNRECOVERABLE] [CACHE|NO CACHE] [ENABLE|DISABLE] [LOGGING|NOLOGGING] [MONITORING|NOMONITORING] [AS query]

- 5 -


第四章Oracle数据库对象.doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:污水处理283个为什么(绝对不错)

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: