SQL Server 约束

约束的定义

SQL 约束用于规定表中的数据规则。如果存在违反约束的数据行为,行为会被约束终止

约束的创建

  • 创建表的时候添加约束
  • 表创建后添加约束

创建表时候添加约束

if OBJECT_ID('user_info','u') is not null
drop table user_extend,user_info
create table user_info(
id varchar(20) primary key,
name nvarchar(20) unique,
sex nvarchar(20) default '男',
age int check(age>18),
height int not null
)

--用户扩展表 user_extend(id,u_id,passwd)
if OBJECT_ID('user_extend','u') is not null
drop table user_extend
create table user_extend(
id varchar(20) primary key,
u_id varchar(20) foreign key references user_info(id),
passwd varchar(20) default '111111'
)

表创建后,再添加约束

--先创建2张没有约束的表
--用户表 user(id,name,age,sex,height)
if OBJECT_ID('user_info','u') is not null
drop table user_info
create table user_info(
id varchar(20) not null,
name nvarchar(20),
sex nvarchar(20) ,
age int ,
height int
)

--用户扩展表 user_extend(id,u_id,passwd)
if OBJECT_ID('user_extend','u') is not null
drop table user_extend
create table user_extend(
id varchar(20) ,
u_id varchar(20) ,
passwd varchar(20),
)

--修改表,添加约束
alter table user_info
add constraint pk_id primary key (id)

alter table user_info
add constraint un_name unique (name)

alter table user_info
add constraint df_sex  default '男' for sex

alter table user_info
add constraint ck_age check(age>18)

alter table user_info
alter column height int not null

alter table user_extend
add constraint fk_uid foreign key (u_id) references user_info(id) 



删除约束

alter table XX drop constraint 约束名
posted @ 2021-08-11 20:10  弩哥++  阅读(94)  评论(0编辑  收藏  举报