下面那我们说说SqlServer提高篇的操作,包括列的增删改查和约束,主外键等
创建两个表:
create table Employees( EmpId int identity(1,1) primary key, EmpName varchar(50), EmpGender char(2), EmpAge int, EmpEmail varchar(20), EmpAddress varchar(500), EmpDepId int ) create table Department( DepId int identity(1,1) , DepName varchar(50) )
列的操作:
--------删除一列 alter table Employees drop column EmpAddress -----------增加一列 alter table Employees add EmpAddress nvarchar(1000) -----------修改一列数据类型 alter table Employees alter column EmpEmail varchar(100)
增加主外键:
----------为部门表增加主键 alter table Department add constraint PK_Department_DepId primary key(DepId) ---------增加外键约束,级联约束 alter table Employees add constraint FK_Department_Department foreign key(EmpDepId) references Department(DepId) on delete cascade
检查约束:
-----------增加一个检查约束,比如性别只能为男或女 alter table Employees add constraint CK_Employees_EmpGender check(EmpGender = '男' or EmpGender='女') -----------增加检查约束,年龄只能在0-150岁之间 alter table Employees add constraint CK_Employees_EmpAge check(EmpAge>=0 and EmpAge<=150)
列增加默认值:
-----------增加默认值 alter table Employees add constraint DF_Employees_EmpGender default('男') for EmpGender
增加唯一约束:
----------增加唯一约束 alter table Employees add constraint UQ_Employees_EmpName unique(EmpName)
增加唯一约束:
----------增加非空约束,实际就是修改列 alter table Employees alter column EmpName varchar(50) not null
删除约束:
----------删除约束 alter table Employees drop constraint DF_Employees_EmpGender,CK_Employees_EmpAge
增加多条约束:
--------增加多条约束 alter table Employees add constraint CK_Employees_EmpGender check(EmpGender = '男' or EmpGender='女'), constraint CK_Employees_EmpAge check(EmpAge>=0 and EmpAge<=150), constraint CK_Employees_EmpAge check(EmpAge>=0 and EmpAge<=150)
最后,在创建表的时候直接增加约束:
----------------创建表的时候,直接添加约束 create table Employees( EmpId int identity(1,1) primary key, EmpName varchar(50) check(len(EmpName)>=2 and len(EmpName)<=25) not null unique, EmpGender char(2) check(EmpGender ='男' or EmpGender ='女') default('男') not null, EmpAge int check(EmpAge>=0 and EmpAge<=150), EmpEmail varchar(20) unique, EmpAddress varchar(500), EmpDepId int foreign key references Department(DepId) on delete cascade ) create table Department( DepId int identity(1,1) primary key , DepName varchar(50) )