SQL的六种约束

时间:2022-05-09 00:26:09

约束关键字  Constraints

作用:限制表的数据类型

第一种方式:创建表的时候添加约束,create table语句

第二种方式:创建表之后添加约束,alter table语句

 

注:红色为注意事项

1、not null(不能为空)

创建表时约束not null

SQL的六种约束

创建car表时约束了carid字段不能为空

 

2、unique(此字段的每条记录必须唯一,一般我们用来约束id,他和primary key一样,都对字段保证了唯一性)

创建表时约束unique

 SQL的六种约束

创建表之后约束unique

SQL的六种约束

图一:创建car表的时候约束了字段carid必须拥有唯一性

图二:修改car表字段类型,给car表的carname字段添加一个unique约束

 

3、primary key(设置此字段为这张表的主键,每个表应该有一个主键,而且每个表都只能有一个主键,主键字段必须唯一且不能有null值)

创建时设置主键

SQL的六种约束

创建后设置主键

图略:alter语法

 

附:primary key还有一种情况,联合主键。(一句话概括 = 两个或两个以上的字段都设置成主键),这里看似违反了unique,其实不然。它是把联合主键看成一个主键

这里我们说一下联合主键,见下图

创建表时设置联合主键

SQL的六种约束

SQL的六种约束

我们可以看到被创建的car表,他的两个字段carid和carname被设置成了联合主键

创建后设置主键

图略:alter语法

 

4、foreign key(设置此字段为这张表的外键,它指向另一张表的主键。)

foreign key约束防止破坏表连接,外键字段里的所有数据,必须是另一张表的主键字段里的值。

也就是说,一张表的外键必须指向另一张表的主键

创建时设置外键

SQL的六种约束

创建smallcar表,给smallcarid字段设置了主键,给carid字段设置了指向car表的carid字段的外键

 

创建后设置外键

图略:alter语法

 

 

5、check(约束用于限制字段中的值的范围)

对单个字段check的约束,那只允许该字段的值为特定的值

对表check的约束,会在特定的字段进行数据限制

创建表时check约束

SQL的六种约束

约束字段carid的值必须大于0,多个check约束可以效仿上面的几个约束。

但是括号里面要用and进行隔开

 

创建表后check约束

图略:alter语法

 

 

6、default(默认值,如果定义了默认值,再插入数据时如果没有插入数据,会根据默认值插入)

创建时设置default约束

SQL的六种约束

SQL的六种约束

上面的carname记录是自动添加的

给carname字段设置了default约束,那么我们在插入记录的时候即使没有填写carname字段的数据。会默认给我们一个'carname‘数据

 

创建后添加default约束

图略:alter语法