什么是约束?
为了确保表中的数据的完整性(准确性、正确性),为表添加一些限制。是数据库中表设计的一个最基本规则。使用约束可以使数据更加准确,从而减少冗余数据(脏数据)。
数据库中的约束类型分为以下几个大类
非空约束(NOT NULL)
非空约束指的是表中的某一个字段的内容不允许为空,如果要使用非空约束,只需要在每个列的后面利用“NOT NULL”声明即可。
唯一性约束(UNIQUE)
唯一性约束要求该列唯一,允许为空,但只能出现一个空值。唯一约束可以确保一列或者几列不出现重复值。
所有列完成后指定唯一约束:
CONSTRAINT 约束名 UNIQUE 字段名
直接指定某列为为唯一约束:
字段名 数据类型 UNIQUE
UNIQUE 和 PRIMARY KEY 的区别:
一个表中可以有多个字段声明为 UNIQUE ,但只能有一个 PRIMARY KEY 声明;声明为 PRIMARY KEY 的列不允许有空值,但是声明为 UNIQUE 的字段允许空值的存在。
主键约束(PRIMARY KEY)
主键列的数据类型不限,但此列必须是唯一并且非空。
主键是一个表中能标识唯一行的标志(也有其他方法表示唯一行,如唯一列)。
主键主要用在查询单调数据,修改单调数据和删除单调数据上。
两种设置主键约束的语法格式:
列名 列类型 PRIMARY KEY [默认值]
[CONSTRAINT ] PRIMARY KEY [字段名]
外键约束(FOREIGN KEY)
外键约束:这个是实现表与表之间的约束,从表的字段值必须在主表中。
外键约束(FOREIGN KEY)是表的一个特殊字段,经常与主键约束一起使用。对于两个具有关联关系的表而言,相关联字段中主键所在的表就是主表(父表),外键所在的表就是从表(子表)。
加入外键的条件:
1、两个表有相同属性字段,取值范围相同。
2、外键在主表中是主键或者是唯一字段。
3、外键可以是多个字段的组合。
语法1: [CONSTRAINT <外键名>] FOREIGN KEY 字段名 [,字段名2,…]
语法2: REFERENCES <主表名> 主键列1 [,主键列2,…]