常用的约束类型如下:
主键约束:(Primary Key constraint) 要求主键列唯一,并且不允许为空
唯一约束:(Unique Constraint) 要求该列唯一,允许为空,但只能出现一个空值
检查约束:(Check Constraint) 某列取值范围限制、格式限制等。如有关年龄的限制
默认约束:(Default Constraint) 某列的默认值,如我们的男性学员比较多,性别默认为男
外键约束:(Foreign Key Constraint) 用于在两表之间建立关系,需要指定引用主表的哪一列
一、添加约束
1.在创建表的时候添加约束
create table employee(
eno int not null primary key, --主键
eid char(18) unique, --唯一约束
ename char(20),
esalary smallint
)
--或者这样写
create table employee(
eno int not null,
eid char(18),
ename char(20),
esalary smallint,
CONSTRAINT PK_ENO PRIMARY KEY(ENO),
CONSTRAINT UQ_EID UNIQUE(EID)
)
2.我们可以在创建表示在字段后添加各种约束,但一般不这样做,将添加约束和建表的语句分开编写会显得代码简洁美观。
添加约束的语法如下:
Alter Table 表名
Add CONSTRAINT 约束名 约束类型 具体的约束类型
具体实例
---添加主键约束
Alter Table employee
Add CONSTRAINT PK_ENO PRIMARY KEY(ENO)
---添加唯一约束
Alter Table employee
Add Constraint UQ_EID unique(EID)
---添加默认约束
Alter Table employee
Add Constraint DF_ENAME default('访客') for ENAME
---添加检查约束
Alter Table employee
Add Constraint CK_esalary check(esalary>0)
---添加外键约束
Alter Table employee
Add Constraint FK_Eid foreign key(id) references employeeid (eid)
二、删除约束
Alter Table 表名
Drop Constraint 约束名
具体实例
--删除主键约束
alter table student
drop CONSTRAINT PK_stuNO