六大约束

约束用于限制加入表的数据的类型。可以在创建表时添加约束也可以在修改表时添加或移除约束。

01,创建表时建立

02,建立表之后建立

约束的语法示例:(Constraint 约束名 可省略)

1. 添加主键约束

Alter table 表名 add Constraint 主键名 primary key(字段)

2.  添加唯一约束

Alter table 表名 add Constraint 约束名 unique(字段)

3.  添加默认约束

Alter table 表名 add Constraint 约束名 default(默认内容) for 字段名

4.  添加检查约束

Alter table 表名 add Constraint 约束名 check (字段表达)

5.  添加外键约束

Alter table 表名 add Constraint 约束名 foreign key(字段) references 表名(字段名)

6.非空约束

Alter table  表名  Alter column 字段   字段类型    not null ;

-----------------------------------------------------------------------------------------------------------------------------------------------------------------

*NOT NULL约束:

 它只能作为列级约束使用,只能使用列级约束语法定义。                                                                                                                                

 SQL中null:                                                                                                                                                                                                                

1)所有数据类型的值都可以是null值,包括 int、float、boolean等                                                                                                 

 2)与 C#,java 类似,空字符串不等于 null ,0 也不等于 null 

----建表时为指定列指定非空约束:

----使用alter table 修改表时 增加 / 删除 非空约束:

*UNIQUE约束:

 唯一约束用于保证指定列或指定列组合不允许出现重复值。                                                                                                                                                                                                              

----列级约束语法建立唯一约束:

----如果需要为多列组合建立唯一约束,或者想自行制定约束名,则需要使用表级约束语法,     


----除此之外,还可以为两列组合建立唯一的约束:

----修改表结构时使用 add 关键字来增加唯一约束:

# 删除unique_test3 表上的test3_uk 这个唯一约束

*PRIMARY KEY约束:


 主键约束相当于非空约束和唯一约束,即主键约束的列既不允许出现重复值,也不允许出现null值;                                            

如果对多列组合建立主键约束,则多列里包含的每一列都不能为空,但只要求这些列组合不能重复;                                                           

使用表级约束语法建立约束时,可以为该约束指定约束名,                                                                                                                

但不管用户是否为该主键约束指定约束名,总是将所有的 主键约束 命名为PRIMARY ;                                                        

主键列的值可用于唯一地标识表中的一条记录;                                                                                                                                   

每一个表中最多允许有一个主键 ;                                                                                                                                                        

当创建主键约束时,在主键约束所在列或列组合上建立对应的唯一索引;                                                                            

与建立唯一约束不同的是,建立主键约束使用 primary key

----建表时创建主键约束,列级语法        

 


----建表时创建主键约束,表级语法:

# 删除主键约束

 ALTER TABLE 表名DROP CONSTRAINT 约束名

# 通过 add 来增加主键约束,采用表级约束语法

alter table 表名 [add constraint 约束名primary key(字段名)       

主键自增长            

*FOREIGN KEY约束:

 外键约束主要用于保证一个或两个数据表之间的参照完整性, 外键时构建于一个表的两个字段或者两个表的两个字段之间的关系。                                                                 外键确保了相关的两个字段的参照关系:字表外键列的值必须在主表被参照的值范围之内 ,或者为空(也可以通过非空约束来约束外键列不允许为空);                                 当主表的记录被从表记录参照时,主表记录不允许被删除, 必须先把从表里参照记录的所有记录全部删除后,才可以删除主表的该记录

 外键必须是另一张表的主键

#表建立完后再建立外键

#删除外键

*CHECK约束:

建立CHECK约束的语法:只要在建表的列定义后增加check(逻辑表达式)即可,检查插入或修改的值是否满足条件

 *建立表后,插入约束

*DEFAULT约束:

 默认约束也是表定义的一个组成部分,它定义了当插入的行对于定义了默认约束的列未提供相应数据是该怎么办。可以定义一个字面值(年龄默认为0)或系统值(时间为getdate())等。

(1) 默认值只在insert语句中使用,在update、delete语句被忽略

(2)如果在insert语句提供任意值,那就不使用默认值,若该列不提供值,则使用默认值

 #建立表后插入约束

原文地址:https://www.cnblogs.com/anyihen/p/12327660.html