DB2有五种约束:
-
NOT NULL 约束是这样一种规则,它防止在表的一列或多列中输入空值。
-
唯一约束(也称为唯一键约束)是这样一种规则,它禁止表的一列或多列中出现重复值。唯一键和主键是受支持的唯一约束。例如,可对供应商表中的供应商标识定义唯一约束以确保不会对两个供应商指定同一供应商标识。
-
主键约束是与唯一约束具有相同属性的一列或列的组合。可使用主键和外键约束来定义表之间的关系。
-
外键约束(也称为引用约束或引用完整性约束)是关于一个或多个表中的一列或多列中的值的一种逻辑规则。例如,一组表共享关于公司的供应商的信息。供应商的名称有时可能会更改。可定义一个引用约束,声明表中的供应商的标识必须与供应商信息中的供应商标识相匹配。此约束会阻止可能导致丢失供应商信息的插入、更新或删除操作。
-
(表)检查约束(也称为检查约束)对添加至特定表的数据设置限制。例如,表检查约束可确保每当在包含个人信息的表中添加或更新薪水数据时,职员的薪水级别至少为 $20000。
创建 Not null:
CREATE TABLE EMPLOYEES (. . .
EMERGENCY_PHONE CHAR(14) NOT NULL,
. . .
);
修改之:
db2 "alter table tabname ALTER colname drop not null"
db2 "alter table t01 ALTER colname set not null"
创建、删除唯一约束:
db2 "alter table tabname add unique(colname)"
db2 "alter table tabname drop unique CONSTNAME "
创建主键约束:
db2 "alter table staff add primary key (id)"
创建外键约束:
db2 alter table project add foreign key (respemp) references employee on delete cascade
表检查约束:
db2 alter table employee add constraint phoneno_length check (length(rtrim(phoneno)) = 4)