4.4 约束的使用

约束是保证数据库表中数据的完整性和一致性的手段,在本书的第3章中已经介绍过Oracle 11g中的5个约束,即主键约束、外键约束、唯一约束、检查约束、非空约束。在本节中将一一讲解每一个约束是如何创建、修改、删除的。

4.4.1 主键约束

主键约束在每一个数据表中只有一个,但是一个主键约束可以由数据表中多个列组成。下面就学习主键约束的使用。

(1)使用主键约束创建商品类型信息表

在创建表时就创建主键约束,只需要使用primary key(字段名)即可完成。商品类型信息表主要用来存放商品类型信息,包括商品类型编号和商品类型名称,并把商品类型编号设置成主键。这两个字段的数据库类型定义如表4.6所示。

4.4 约束的使用 - 图1

按照设置好的字段名和数据类型,在sql/plus中创建表categoryinfo,并把商品类型编号(CategoryId)设置成主键,结果如图4.13所示。

4.4 约束的使用 - 图2

图 4.13 商品类型信息表

(2)使用ALTER TABLE语句为表添加主键约束

在创建表时如果没有创建主键约束,可以在修改表时为表添加主键约束。添加主键约束的语法如下:


ALTER TABLE table_name

ADD CONSTRAINTS constraint_name PRIMARY KEY(column_name);


【语法说明】

❑constraint_name:约束的名称。

❑column_name:主键约束指定数据表中的列名。

下面就假设在创建商品类型信息表categoryinfo时没有添加主键约束,在修改表时为表添加主键约束,结果如图4.14所示。

4.4 约束的使用 - 图3

图 4.14 添加主键约束

这样就创建了主键约束,主键约束的名称是pk_category,创建的主键列是categoryid。

(3)移除主键约束

如果需要移除表中现有的主键约束,可以使用如下所示的语句完成:


ALTER TABLE table_name

DROP CONSTRAINT constraint_name;


【语法说明】

constraint_name:要移除的约束名称,这个名称可以是在表中任意约束的名称。

下面利用上面的语句,移除商品类型信息表中的主键约束pk_category。具体语句如下:


ALTER TABLE categoryinfo

DROP CONSTRAINT pk_category;


这样,就完成了主键约束pk_category的移除操作。