第8章管理表 表是最重要的数据库对象之一,同时也是最常用 的模式对象。由于表是存储数据的主要手段,因此对 表的管理也是非常重要的。另外,通过在表定义约束 ,可以用最简单的方式实现一些基本的应用逻辑,同 时也是对表中数据的有效性和完整性进维护。在 清率电脑学堂 Oracle11g系统中,表有多种类型,本章讲述最基本 的堆表,以及对堆表和约束的操作进行详细介绍
1 第8章 管理表 表是最重要的数据库对象之一,同时也是最常用 的模式对象。由于表是存储数据的主要手段,因此对 表的管理也是非常重要的。另外,通过在表定义约束 ,可以用最简单的方式实现一些基本的应用逻辑,同 时也是对表中数据的有效性和完整性进维护。在 Oracle 11g系统中,表有多种类型,本章讲述最基本 的堆表,以及对堆表和约束的操作进行详细介绍
本章知识要点: 定义表结构 Oracle表的特性 修改表 数据的完整性约束 清率电脑学堂 设置各个完整性约束的状态 在表中使用大对象类型
2 本章知识要点: • 定义表结构 • Oracle表的特性 • 修改表 • 数据的完整性约束 • 设置各个完整性约束的状态 • 在表中使用大对象类型
8.1创建表 数据库中的数据是以表的形式存储。数据库中的 每一个表都被为一个模式(或用户)所拥用,因此表 是一种典型的模式对象。在创建表时, Oracle将在 个指定的表空间中为其分配存储空间。 清率电脑学堂
3 8.1 创建表 • 数据库中的数据是以表的形式存储。数据库中的 每一个表都被为一个模式(或用户)所拥用,因此表 是一种典型的模式对象。在创建表时,Oracle将在一 个指定的表空间中为其分配存储空间
8.1.1表结构 表是常见的一种组织数据的方式,一张表一般都 具有多个列,或者称为字段。每个字段都具有特定的 属性,包括字段名、字段数据类型、字段长度、约束 、默认值等,这些属性在创建表时被确定。从用户角 度来看,数据库中数据的逻辑结构是一张二维表,在 清率电脑学堂 表中通过行和列来组织数据。在表中的每一行存放 条信息,通常称表中的一行为一条记录
8.1.1 表结构 • 表是常见的一种组织数据的方式,一张表一般都 具有多个列,或者称为字段。每个字段都具有特定的 属性,包括字段名、字段数据类型、字段长度、约束 、默认值等,这些属性在创建表时被确定。从用户角 度来看,数据库中数据的逻辑结构是一张二维表,在 表中通过行和列来组织数据。在表中的每一行存放一 条信息,通常称表中的一行为一条记录。 4
8.1.2创建表 创建表时需要使用CREATE TABLE语句,为了在 用户自己的模式中创建一个新表,则用户必须具有 CREATE TABLE系统权限。如果要在其他用户模式中 创建表,则必须具有CREATE ANY TABLE的系统权 限。此外,用户还必须在指定的表空间中具有一定的 清率电脑学堂 配额存储空间
8.1.2 创建表 • 创建表时需要使用CREATE TABLE语句,为了在 用户自己的模式中创建一个新表,则用户必须具有 CREATE TABLE系统权限。如果要在其他用户模式中 创建表,则必须具有CREATE ANY TABLE的系统权 限。此外,用户还必须在指定的表空间中具有一定的 配额存储空间。 5
8.1.3表特性 当用户在Oracle中建立模式对象(如表)时,Oracle 清 允许用户规定该对象如何使用磁盘上的存储空间。如果 仅为表指定了表空间,而没有设置存储参数,它将自动 电 采用所属表空间的默认存储参数设置。然而表空间的默 认存储参数设置并不一定对表空间中的每一个表都适合 ,因此,当表所需的存储参数与表空间的默认存储参数 脑学堂 不同时,需要在创建表时显式指定存储参数以替换表空 间的默认存储设置
6 8.1.3 表特性 • 当用户在Oracle中建立模式对象(如表)时,Oracle 允许用户规定该对象如何使用磁盘上的存储空间。如果 仅为表指定了表空间,而没有设置存储参数,它将自动 采用所属表空间的默认存储参数设置。然而表空间的默 认存储参数设置并不一定对表空间中的每一个表都适合 ,因此,当表所需的存储参数与表空间的默认存储参数 不同时,需要在创建表时显式指定存储参数以替换表空 间的默认存储设置
8.2修改表 工二工工二二二二工二二工工 在创建表后,如果发现对表的定义有不满意的地方 ,还可以对表进行修改。这些修改操作包括:增加或删 除表中的字段、改变表的存储参数设置,以及对表进行 电 增加、删减和重命名等操作。普通用户只能对自己模式 中的表进行修改,如果想要对任何模式中的表进行修改 学 操作,则用户必须具有ALTER ANY TABLE系统权限
7 8.2 修改表 • 在创建表后,如果发现对表的定义有不满意的地方 ,还可以对表进行修改。这些修改操作包括:增加或删 除表中的字段、改变表的存储参数设置,以及对表进行 增加、删减和重命名等操作。普通用户只能对自己模式 中的表进行修改,如果想要对任何模式中的表进行修改 操作,则用户必须具有ALTER ANY TABLE系统权限
8.2.1增加和删除字段 使用ALTER TABLE..ADD语句能够向表中添加 新的字段。例如,利用下面的语句在EMPLOYEES表 中增加一个名为AGE的新字段: SQL>alter table employees add(age number(2)); 表已更改。 SQL>desc employees 清率电脑学堂 名称 是否为空? 类型 EMPNO NOT NULL NUMBER(10) ENAME VARCHAR2(20) SEX CHAR(2) SALARY NUMBER(8,2) HIREDATE DATE JOB VARCHAR2(10) EMAIL VARCHAR2(50) DEPTNO NOT NULL NUMBER(3) AGE NUMBER(2)
8.2.1 增加和删除字段 • 使用ALTER TABLE … ADD语句能够向表中添加 新的字段。例如,利用下面的语句在EMPLOYEES表 中增加一个名为AGE的新字段: 8 SQL> alter table employees add(age number(2)); 表已更改。 SQL> desc employees 名称 是否为空? 类型 ----------------------------------------- ------------- ---------------- EMPNO NOT NULL NUMBER(10) ENAME VARCHAR2(20) SEX CHAR(2) SALARY NUMBER(8,2) HIREDATE DATE JOB VARCHAR2(10) EMAIL VARCHAR2(50) DEPTNO NOT NULL NUMBER(3) AGE NUMBER(2)
8.2.2更新字段 除了在表中增加和删除字段之外,还可以根据实 际情况更新字段的有关属性。包括更新字段的数据类 型的长度、数字列的精度、列的数据类型和列的默认 值等。使用ALTER TABLE..MODIFY语句更新字段 属性的语法形式如下: 清率电脑学堂 alter table table_name modify column name type;
8.2.2 更新字段 • 除了在表中增加和删除字段之外,还可以根据实 际情况更新字段的有关属性。包括更新字段的数据类 型的长度、数字列的精度、列的数据类型和列的默认 值等。使用ALTER TABLE … MODIFY语句更新字段 属性的语法形式如下: 9 alter table table_name modify column_name type;
8.2.3重命名表 在创建表后,如果想要修改表的名称,则可以使 用ALTER TABLE.RENAME语句对表进行重命名。 清率电脑学堂
10 8.2.3 重命名表 • 在创建表后,如果想要修改表的名称,则可以使 用ALTER TABLE … RENAME语句对表进行重命名