---------------------------手寫T-SQL創建約束------------------------------
alter table Employees add constraint FK_Employees_Department_EmpDepId foreign key(EmpDepId)
references Department(DepId) on delete cascade on update cascade
drop table Department
drop table Employees
create table Employees
(
EmpId int identity(1,1),
EmpName varchar(50),
EmpGender char(2),
EmpAge int,
EmpEmail varchar(100),
EmpAddress varchar(500)
)
create table Department
(
DepId int identity(1,1),
DepName varchar(50)
)
-----------------1.爲Department創建主鍵約束----------------------
alter table Department
add constraint PK_Department_DepId
primary key(DepId)
------------------2.增加一個唯一約束------------------
alter table Department
add constraint UQ_Department_DepName
unique(DepName)
-------------------3.向Employees增加一個主鍵約束--------------
alter table Employees add
constraint PK_Employees_EmpId primary key(EmpId)
-----------------4.向姓名增加一個唯一約束-----------------
alter table Employees add
constraint UQ_Employees_EmpName unique(EmpName)
-----------------5.向姓名中增加一個非空約束--------------------
alter table Employees alter column EmpName
varchar(50) not null
-----------------6.刪除姓名中的唯一約束-------------------------------
alter table Employees drop constraint UQ_Employees_EmpName
--------------7.性別增加一個檢查約束,要求男或女,默認約束爲男--------
alter table Employees add constraint CK_Employees_EmpGender
check(EmpGender='男' or EmpGender='女')
alter table Employees add constraint DF_Employees_EmpGender default('男')
for EmpGender
-------------8.年齡增加一個檢查約束-----------------------------
alter table Employees add constraint CK_Employees_EmpAge
check(EmpAge>=18 and EmpAge<=60)
--------------9.Email增加一個唯一約束-------------------------
alter table Employees add constraint UQ_Employees_EmpEmail
unique(EmpEmail)
---------------10.增加一列-------------------------------
alter table Employees add EmpDepId int not null
----------------11.爲列增加外鍵約束-----------------------------
alter table Employees add constraint FK_Employees_EmpDepId
foreign key(EmpDepId) references Department(DepId)
---------------12.刪除約束--------------------------------------
alter table Employees drop constraint FK_Employees_EmpDepId
---------------13.增加級聯------------------------------------
alter table Employees add constraint FK_Employees_EmpDepId
foreign key(EmpDepId) references Department(DepId)
on delete cascade
on update cascade
-----------------------------14.通過一句話來刪除所有約束----------------
alter table Employees drop constraint FK_Employees_EmpDepId,
UQ_Employees_EmpEmail,CK_Employees_EmpAge
-----------------15.通過一句話來創建多個約束------------------------
alter table Employees add constraint FK_Employess_EmpDepId foreign
key(EmpDepId) references Department(DepId),constraint UQ_Employees_EmpEmail
unique(EmpEmail)
--------------------16.通過創建表來直接創建約束-------------------
create table Employees
(
EmpId int identity(1,1) primary key,
EmpName varchar(50) not null unique,
EmpGender char(2) check(EmpGender='男' or EmpGender='女') default('男'),
EmpAge int check(EmpAge>=18 and EmpAge<=60),
EmpEmail varchar(100) unique,
EmpAddress varchar(500) not null,
EmpDepId int foreign key references Department(DepId)
)