SQL中的约束语句

SQL 中的约束语句


数据库:SQL Server

通用语法
create table [table_name](
    [column_1] [type] [constraint],
    ...
)

create table [table_name](
    ... ,
    constraint [constraint_name] [constraint] (column, ...)
)

alter table [table_name] add [constraint] ([column_name])

alter table [table_name] add constraint [contrasint_name] [constraint] (column, ...)

alter table [table_name] drop constraint [constraint_name]

//查询约束名
exec sp_helpconstraint [table_name]


1. UNIQUE 约束的创建与删除

唯一性约束 UNIQUE
创建

//建表时单列约束
create table [table_name](
    [column_1] [type] unique,
    ...
)
//建表时多列约束,并对约束命名
create table [table_name](
    ... ,
    constraint [UQ_name] unique (column_1, column_2, ...)
)
//对已建表的单列约束
alter table [table_name] add unique ([column_name])
//对已建表多列约束,并对约束命名
alter table [table_name] add constraint [UQ_name] unique (column_1, column_2)

删除

// 约束已经命名
alter table [table_name] drop constraint [UQ_name]
//如果约束未命名
exec sp_helpconstraint [table_name]
alter table [table_name] drop constraint [UQ_name]

2. 主键约束

创建

create table [table_name](
    [column_1] primary key,
    ... 
)

create table [table_name](
    ... ,
    constraint [PK_name] primary key (column_1, column_2, ...)
)

alter table [table_name] add primary key  [column_name]

alter table [table_name] add constraint [PK_name] primary key (column_1, column_2)

删除

alter table [table_name] drop constraint [PK_name]

3. 外键约束

创建

create table [table_name](
    ... ,
    [column_fk] [type] foreign key references table_1([pk_name])
)

create table [table_name](
    ... ,
    constraint [FK_name] foreign key ([column_fk]) references table_1([pk_name])
)

alter table [table_name] add constraint [fk_name] foreign key ([column_fk]) references table_1([column_pk])

删除

alter table [table_name] drop constraint [FK_name]
4. check 约束

创建

create table [table_name](
    [column_1] [type] check([column_1] > 0) ,
    ...
)

create table [table_name](
    ... ,
    constraint [CHK_name] check ([column_1] > 0 and [column_2] = 'str')
)

alter table [table_name] add check ([column_1] > 0)

alter table [table_name] add constraint [CHK_name] check ([column_1] > 0 and [column_2] = 'str')

删除

alter table [table_name] drop check [CHK_name]
5. default 约束

创建

create table [table_name](
    ... ,
    [column_1] [type] default 'str',
    [column_2] [type] default getdate()  
)

alter table [table_name] add default ['str'] for [column] with values 

删除

alter table [table_name] alter column [column_name] drop default
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值