------------------------------------------------------------------------ --通过t-sql语句来创建约束 ------------------------------------------------------------------------ --新建一张表:员工信息表 create table Employees ( EmpId int identity(1,1), EmpName nvarchar(50), EmpGender char(2), EmpAge int, EmpEmail nvarchar(100), EmpAddress nvarchar(500) ) create table Department ( DepId int identity(1,1), DepName nvarchar(50), )
--========================手动增加约束=========================== --手动删除一列(删除EmpAddress列) alter table Employees drop column EmpAddress --手动增加一列(增加一列EmpAddress nvarchar(1000)) alter table Employees add EmpAddress nvarchar(1000) --手动修改一下EmpEmail的数据类型(nvarchar(200)) alter table Employees alter column EmpEmail nvarchar(200) --为EmpId增加一个主键约束 alter table Employees add constraint PK_Employees_EmpId primary key (EmpId) --非空约束,为EmpName增加一个非空约束(修改列) alter table Employees alter column EmpName nvarchar(50) not null --为EmpName增加一个唯一约束 alter table Employees add constraint UQ_Employees_EmpName unique (EmpName) --为性别增加一个默认约束,默认为"男" alter table Employees add constraint DF_Employees_EmpGender default('男') for EmpGender --为性别增加一个检查约束,要求性别只能是"男"or"女" alter table Employees add constraint CK_Employees_EmpGender check(EmpGender='男' or EmpGender='女') --为年龄增加一个检查约束,年龄必须在0-120岁,含岁与岁 alter table Employees add constraint CK_Employees_EmpAge check(EmpAge>=0 and EmpAge<=120) --创建一个部门表,然后为Employees表增加一个DepId列 alter table Employees add DepId int not null --为Department表设置主键,主键列是DepId alter table Department add constraint PK_Department_DepId primary key (DepId) --增加外键约束 alter table Employees add constraint FK_Employees_Department foreign key(DepId) references Department(DepId)
------------------------------------------------------------------ --删除约束--------------------------------------------- alter table Employees drop constraint UQ_Employees_EmpName,DF_Employees_EmpGender,CK_Employees_EmpGender,CK_Employees_EmpAge,FK_Employees_Department --通过一条代码来增加多个约束 alter table Employees add constraint UQ_Employees_EmpName unique (EmpName) , constraint DF_Employees_EmpGender default('男') for EmpGender, constraint CK_Employees_EmpGender check(EmpGender='男' or EmpGender='女'), constraint CK_Employees_EmpAge check(EmpAge>=0 and EmpAge<=120), constraint FK_Employees_Department foreign key(DepId) references Department(DepId)
--======================================================================== ----------------------创建表的同时就为表增加约束-------------------------- create table Employees ( EmpId int identity(1,1) primary key, EmpName nvarchar(50) not null unique check(len(EmpName)>2), EmpGender char(2) default('男'), EmpAge int check(EmpAge>0 and EmpAge<120), EmpEmail nvarchar(100) unique, EmpAddress nvarchar(500) not null, EmpDepId int foreign key references Department(DepId) on delete cascade ) create table Department ( DepId int identity(1,1) primary key, DepName nvarchar(50) not null unique )