【MYSQL】约束

约束

通过约束,可以让未来插入到数据库表中的数据是符合预期的。前面提到的数据类型,就是一种约束。

约束本质是通过技术手段,逼着使用者插入正确的数据。凡是插入的数据,必定符合数据约束。

约束的最终目标是保证数据的 完整性 和 可预期性!

非空约束

NULL 和 NOT NULL(默认允许为空)

默认值

default 约束,某一种经常出现的数据,可以选择设置为默认值。

如果设置了default,用户设置就用用户的,没有设置就用默认的。

default 和 not null 相互补充,非空约束是约束用户想插入数据的情况;而用户忽略这一列的时候,是默认值约束。

列描述

对表中字段进行说明,这是约束给程序员的!不是硬性约束!

zerofill

数字类型后面的长度,例如 int(10) 如果插入数字的宽度小于设定的宽度,自动填充0。如果够了或者超过位数,直接显示,保证正确显示。

主键约束

主键(primary key):唯一的约束该字段里的数据,不能重复,不能为空,一张表中最多只能有一个主键。但不是一个表中的主键只可以对应一列(复合主键)。

//添加主键
ALTER TABLE table_name ADD PRIMARY KEY(ID);

//去掉主键
ALTER TABLE table_name DROP PRIMARY KEY;

自增长

id int unsigned primary key auto_increment;

可以在表外设置 AUTO_INCREMENT 的值

//查看 AUTO_INCREMENT 
SELECT last_insert_id();

唯一键

唯一键可以为空,而且可以多个为空,空字段不做唯一性比较。

主键和唯一键并不互相冲突,他们也相互补充。就像身份证和电话号码都是不能冲突的,我们只是选择了身份证号作为了主键。

外键

从表依附于主表,实现 关联 和 约束,主表必须是有主键约束或unique约束,定义外键后,外键的列数据必须在主表的主键列存在或为null

语法:

foreign key(column_name) references table_name(column_name);

猜你喜欢

转载自blog.csdn.net/m0_73209194/article/details/133200406