【lesson8】表的约束(1)

2023-12-13 15:56:42

表的约束的介绍

真正约束字段的是数据类型,但是数据类型约束很单一,需要有一些额外的约束,更好的保证数据的合法性,从业务逻辑角度保证数据的正确性。比如有一个字段是email,要求是唯一的。

表中一定要有各种约束,通过约束让我们未来插入数据库中的数据是符合预期的。

约束本质是通过技术手段倒逼程序员插入正确的数据。

反过来站在mysql的视角,凡是插入成功的数据都是符合数据约束的。

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

表的约束很多,这里主要介绍如下几个: null/not null,default, comment, zerofill,primary key,auto_increment,unique key

空属性约束(null)和非空属性约束

MySQL中null表示没有
null vs ‘ ’(空串)
null:表示该数据什么都没有
‘ ’:表示该数据是有的,只不过是空串

MySQL默认插入数据可以为null。
not null:插入数据不能为空

测试

建表

创建表和查看表的信息
在这里插入图片描述
在这里插入图片描述

插入测试

在这里插入图片描述
我们看到有not null约束的列确实不能为空,而没有not null约束的列时默认可以为空的。

上面称为非空约束,不指明约束的情况下可以为空。

默认值约束

默认值:某一种数据会经常性的出现某个具体的值,可以在一开始就指定好,在需要真实数据的时候,用户可以选择性的使用默认值。

测试

建表

建表和查看表的信息
在这里插入图片描述

测试

在这里插入图片描述
从上面我们可以得出结论:default如果设置了用户如果插入有具体的数据就用用户的,没有就用默认的。
insert是也要指定要插入的列,如果要用默认值可以不指定,如果没有指定就会报错。

建表查看默认行为

建表

在这里插入图片描述
在这里插入图片描述

插入测试

在这里插入图片描述
如果我们没有明确指定一定要插入的数据,而用的是default,如果建表对应列默认没有设置default值,如果也设置了not null就无法直接插入。
在这里插入图片描述
default和not null不冲突而是互相补充的。
not null:约束用户向插入的时候
default:当用户忽略这一列的时候,如果设置了就使用默认值,如果没有就直接为空或者报错。

演示
1.有设置默认值时
在这里插入图片描述
在这里插入图片描述

2.没有设置默认值时
a.建表
在这里插入图片描述
b.测试
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

文章来源:https://blog.csdn.net/m0_67077469/article/details/134940315
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。