数据库中数据的约束
- 键值约束 primary key
- 唯一性约束 unique key
- 非空约束 not null
- 默认值 default val
- 扩展属性(auto_increment)
- 外键约束 foreign key
- check 子句约束
键值约束 primary key
主键约束:primary key 约束指定字段中的值,非空且唯一
一张表中只能有一个主键
1、在创建表的同时设置主键信息
create table if not exists <表名> (<列名><数据类型> primary key ,<列名><数据类型>…);
2、声明主键信息
create table if not exists <表名> (<列名><数据类型> ,<列名><数据类型>…,primary key pk(<列名>));
3、声明组合主键信息
create table if not exists <表名> (<列名><数据类型> ,<列名><数据类型>…,primary key pk(<列名>,<列名>));
唯一性约束 unique key
unique key:约束指定字段内容唯一
在正常的表创建中,我们发现没有设置字段值约束的时候,插入到表中的信息可能会存在重复,这是我们并不期待看到的结果,例如:
因此,我们可以设置唯一属性来进行字段的约束
1、直接进行唯一性约束
2、声明唯一性约束
3、唯一键的组合
唯一键可以是组合键,以多个字段为整体进行唯一性判断
但是唯一键只限制数值唯一,并不限制是否为 NULL,因此不对 NULL 进行唯一性判断
非空约束 not null
not null :约束指定字段的内容不能是 NULL
默认值 default val
在指定列插入,为给定某字段值时候采用默认值来进行填充
扩展属性(auto_increment)
自增属性:auto_increment
只针对整形字段进行设置,并且必须是主键字段
若某一列未插入数据时,默认会从 1 开始每次 +1 来进行填充
外键约束 foreign key
foreign key (fields) references other_table(fields);
约束当前表中指定字段fields必须在另一张表中指定字段fields中存在----------参照完整性
被参照的字段必须是主键----------一个表的外键参照另一个表的主键
check 子句约束
check 检查是否符合要求