约束

1、约束类型:

  主键约束(PRIMARY KEY):

    1、要求主键列不能为空

    2、约束唯一标识数据库表中的每一条记录

    3、主键必须包含唯一的值

    4、每张表都应该有一个主键

    5、语法: 

      1、创建主键(创建表时):create table <表名> (StudentID int not null primary key)

      2、创建主键(表已存在):alter table <表名>  add constraint pk_列名 primary key (列名)

      3、删除主键约束:1、alter table <表名> drop constraint primary key 

                2、alter table <表名> drop constraint <主键约束名> 主键

                约束名可以使用sp_help查询

  非空约束(NULL、NOT NULL):

    1、要求该列不能存在空值

    2、语法:

      创建表时:CREATE TABLE <表名>  (name varchar(10) not  null)

  唯一约束(unique):

    1、要求该列的值必须是唯一的,允许为空,但只能有一个。

    2、每张表中只有一个primary key约束,但可以有多个unique约束。

    3、unique和primary key都是为数据提供唯一性约束

    4、语法:

      1、创建主键(创建表时):create table <表名> (StudentID int unique)

      2、创建主键(表已存在):1、constraint <列名> uniqe (列名,列名) --添加多个约束

                    2、alter table <表名>  add unique (列名)    

      3、删除主键约束:1、alter table <表名> drop constraint unique

                                                     2、alter table <表名> drop constraint <主键约束名> 主键

  检查约束(CHECK):

    1、限制某列取值的范围

    2、如果对单个列做check约束,那么该列只能输入特定的数值

    3、如果一张表定义了check约束,那么会在特定的列队值进行限制

    4、语法:

1、StudentID int not null check (<列名>>0) --要求StudentID要大于0

2、sex varchar(2) not null check (sex='男' or sex='女') --要性别只能输入男或女

3、alter table <表名> add constraint ck_列名 check (列名>0) --向已有列添加check约束

4、alter table <表名> drop constraint check 约束名 --删除约束

默认约束(DEFAULT):

1、设计某列的默认值

2、如果这列没有输入值,那么会将默认值添加到记录中

3、语法:

1、name verchar(40) not null default '李四' --该列默认插入李四

2、endtime data default getedata() --默认插入当前时间

3、alter table <表名> add contraint df_列名 default(0) for 列名 

外键约束(FOREIGN KEY):

  1、用于在两表之间建立关系,需要指定引用主表的那一列(primary key)

  2、foreign key约束用于防止破坏表之间的连接

  3、foreign key约束也能防止非法数据插入该列,因为该列的值必须是他指向那张表的列的值的其中之一

  4、语法:

1、foreign key (列名) references 主表名 (主键列名) 

2、列名 int foreign key references 主表名 (主键列名) 

3、alter table 表名 add constraint fk_列名 foreign key (列名) references 主表名 (主键列名) 

4、alter table 表名 drop constraint 外键约束名 

主键约束与唯一约束的区别:

  1、主键约束所在的列不允许有空值,唯一约束可以为空

  2、每张表中只有一个主键、可以有多个唯一键

 2、SQL添加约束类型

列:

USE <数据库>

GO

ALTER TABLE <表名>

ADD CONSTRAINT PK_<字段名> PRIMARY KEY (字段名),

ADD CONSTRAINT CK_<字段名> CHECK(LEN(字段名)>6),

ADD CONSTRAINT CK_<字段名> CHECK(字段名=1, OR 字段名=0,),

ADD CONSTRAINT DF_<字段名> DEFAULT(0) FOR 字段名,

ADD CONSTRAINT CK_<字段名> CHECK(字段名 like '%@%'),

ADD CONSTRAINT PK_<> PRIMARY KEY (),

    

原文地址:https://www.cnblogs.com/zhouxiangfei/p/12577862.html