一、约束:
什么是约束?
为了确保表中的数据的完整性(准确性、正确性),为表添加一些限制。是数据库中表设计的一个最基本规则。使用约束可以使数据更加准确,从而减少冗余数据(脏数据)。
数据库完整性约束分为以下几个大类
(一)、主键约束
理论上来说每一个数据表都必须有一个唯一主键作为数据的唯一标识,设置主键的列不允许为空,主键习惯 id 表示,可以在创建数据时直接指定,也可以通过修改表结构直接添加,设置为主键的列在添加数据时不能重复,既唯一性。
主键一般不是数据表当中的应用列,而是额外增加的列,而是额外增加的列,如果手动维护的话比较麻烦,所以针对主键Mysql 定制了一种自动增长的策略,既不需要手动给值,而是让mysql自己去维护这个主键,方法是每次找到数据表中最大的ID值加1.
自动递增 AUTO_INCREMENT 的特点
1.只有整形数据列才能设置为自动递增
2.只有主键才能设置为自增列
3.自动增长,新增数据时可以不赋值
4.初始化默认值为1,增量为1
5.自增列一旦被使用过就不会出现
(二)、唯一约束
唯一约束用来保护表中某列数据不允许重复,与主键约束类似,但级别没有主键高。一份表中唯一约束可以创建多个,并且唯一约束的列允许为空。
唯一约束一般用于约束手机号、账户、邮箱等信息。
当我们做第二次插入的时候我们会发现如下错误
(三)、非空约束
可以通过 not null 设置数据表中某一列是必填字段,既不允许为空。
(四)、默认约束
可以通过default设置默认值约束,设置了默认约束的列,如果不给值就会使用默认值来填充。
(五)、外键约束
外键约束用来在两个表的数据之间设立关联,MySql数据库是关系型数据库,既表与表之间的存在关系的,而这种关系我们成为外键关系。
创加一个丈夫表 和一个妻子表,妻子表当中设置外键关联丈夫表
在audit表上创建外键约束,其emp_no对应employees_test表的主键id。
ALTER TABLE audit
ADD CONSTRAINT FOREIGN KEY (emp_no)
REFERENCES employees_test(id);