概念
首先,我们需要了解什么是约束,约束有什么作用和目的
约束他主要的作用就是用于表字段上的规则,限制存储在表里的数据,以确保数据库中的数据的一个正确性、有效和完整性。
那么,我们主要有哪些约束类型尼?
在MySQL中,以下为常见的表创建时可使用的5种约束:
-
主键约束(primary key):主键用于唯一标识表中的每一行数据。主键约束要求被指定为主键的列的值必须是唯一的,并且不能为NULL。
-
唯一约束(unique):唯一约束用于确保表中某一列或某几列的值是唯一的。与主键不同的是,唯一约束允许NULL值存在。
-
外键约束(foreign key):外键约束用于确保表与其他表之间的关联关系的完整性。外键约束创建一个关联到另一个表中的主键的列,并定义了某些操作规则,比如级联更新和删除。
-
非空约束(not null):非空约束用于确保某一列的值不能为空。当为表的列指定非空约束时,该列在插入或更新数据时不能为NULL。
-
默认约束(default):保存数据是,如果未指定字段值,则采用默认值
实战
我们还是用上一篇的sql来完成练习
话不多说,直接上代码
create table table_name(
id int primary key comment 'ID,唯一标识',
phione varchar(20) not null unique comment '电话',
name varchar(10) not null comment '姓名',
age int comment '年龄',
gender char(1) default '男' comment '性别'
) comment '通讯表';
分析
大家请看下图我所标记的地方
大家实战的时候,其实自己也可以想象一下,为什么我们会选择这些约束。
分析:
id:id这东西就像你的身份证一样,是每个人独有的,不可重复的,并且不能为空的。你这样理解之后再去对照上面对主键约束(primary key)的解释,是不是一目了然
phone:大家一定注意到了吧,电话这利我用到了两种约束,这是为什么尼?
是因为:
非空约束(not null)这可以确保电话号码在表中的每一行都是有效的,不会存在空值。
唯一约束(unique)这个确保每个电话号码的值都必须是唯一的。如果尝试插入或更新数据时存在重复的电话号码,则会触发冲突。
(通过使用这两个约束,可以保证电话号码在表中的每一行都是非空且唯一的。这对于确保数据的完整性和避免重复数据非常有用。)
gender:这个就跟简单了,因为性别只有男和女(别提人妖),我们添加数据时选择可以都默认是男或者女,到时候修改就行。
测试
分析完之后,我们再来测试一下,加上这些约束是不是真的有用。
话不多说,上截图:
在IDEA中点击+号添加数据
如下图,我们不添加id,不添加电话,不添加性别的情况:
输出结果:
可以看到报错,那么我们把id加上去尼,看看会不会添加成功。
添加id:
输出结果:
可以看到还是报错了,为什么尼?
诶,有爱坤说了,是因为phone电话也不能为空,那我们再试一下
添加电话:
输出结果:
可以看到已经完成添加。
讲了这么多,大家是不是都学会了尼。如果学会了,麻烦给了一键三连,听说一键三连可以暴富哦!!!