数据完整性分类
1. 域完整性
域完整性又称为列完整性,指定一个数据集对某一个列是否有效和确定是否允许空值。
2. 实体完整性
实体完整性也可称为行完整性,要求表中每一行有一个唯一的标识符,即primary key。
3. 参照完整性
又称之为引用完整性。
主键和唯一键的主要区别:
(1) 一个数据表只能创建一个主键约束,但可以创建若干个唯一键。
(2)主键字段值不允许为空,而唯一键可以。
相同点:
两者均不允许表中的对应字段存在重复值,在创建主键和唯一键约束时会自动产生索引。
列级定义:
列级定义指在定义列的同时定义约束。
表级定义:
指在定义完所有列之后定义约束。
创建表时添加主键:
1
|
创建表时添加外键:
references
table_name2(field_name2));
|
其中 table_name2是要引用的表名,field_name2是table_name2中对应的主键,且 field_name 与field_name2数据类型必须完全一样。
如果在建表时忘记添加约束,则可以用alter table命令为表添加约束。但是要注意,增加NOT NULL时用modify选项,增加primary key、unique、foregin key、check时用add选项。
增加NOT NULL:
alter
table_name
modify
field_name
not
null
;
|
增加unique:
add
constraint
constraint_name
unique
(field_name);
|
或者:
增加primary key:
|