【MySQL知识点】默认约束、非空约束

在这里插入图片描述

🙋‍ 哈喽大家好,本次是MySQL数据库原理系列第五期
⭐本期是MySQL的表的约束——默认约束、非空约束
🏆系列专栏:MySQL数据库
😄笔者还是前端的菜鸟,还请大家多多指教呀~
👍欢迎大佬指正,一起学习,一起加油!



前言

为了防止数据表中插入错误的数据,MySQL定义了一些维护数据库完整性的规则,即表的约束。常见的约束分为默认约束、非空约束、唯一约束、主键约束、外键约束。本期主要学习默认约束、非空约束~


🍎默认约束

定义

默认约束用于为数据表中的字段指定默认值,即当在表中插入一条新纪录时,如果没有给这个字段赋值,那么,数据库系统会自动为这个字段插入默认值。默认值通过default关键字定义,基本语法如下:

字段名 数据类型 DEFAULT 默认值;

注意:BLOB、TEXT数据类型不支持默认约束。

测试

接下来我们创建一个my_default表,准备name和age两个字段进行测试,为age添加默认约束,设置默认值为18,然后使用desc查看表结构,结果如👇
在这里插入图片描述
接下来,我们插入数据进行测试,当插入时省略name和age时,由于name和age没有设置非空约束,所以这两个字段分别使用了默认值null和18。
在这里插入图片描述
在插入时省略age字段,通过结果可以看到,age使用了默认值18。
在这里插入图片描述
当插入记录时在age字段中插入null值,则保存结果为null,不使用默认值。
在这里插入图片描述
当在age字段中使用默认值,则直接显示默认值。所以在为有默认值的字段指定数据时,可以通过default关键字直接指定其使用默认值。
在这里插入图片描述
为现有的表添加或者删除默认约束,使用alter table 修改列属性就可以了。
在这里插入图片描述
在这里插入图片描述

🍎非空约束

定义

非空约束指的是字段的值不能为null,非空约束是通过not null定义的,基本语法格式如下:

字段名 数据类型 not null;

测试

接下来我们创建一个my_not_null表,准备n1、n2和n3两个字段进行测试,为n2添加非空约束,为n3添加默认约束,设置默认值为18,然后使用desc查看表结构,结果如👇
在这里插入图片描述
当省略了n2字段时,插入失败,提示n2没有默认值。
在这里插入图片描述
将n2或者n3字段设为null,插入失败,提示n2、n3字段不能设置为null。
添加了非空约束的字段,插入数据时不能插入空值。
在创建数据表时,非空约束与值为null的默认约束(default null)不能同时存在,否则数据表在创建时会失败。
在这里插入图片描述
在这里插入图片描述
插入数据时省略n1和n3字段,插入成功。此时可以发现,n1未设置任何约束,则可以省略,表示没有添加数据,n3设置了默认值,所以可以省略。n2字段不能为null且没有默认值,所以在插入时不能省略或插入null。
在这里插入图片描述
注意:为现有的表添加或删除非空约束的方式与默认约束类似,使用alter table修改列属性即可。但若目标列中已经保存了null值,添加非空约束会失败,此时只要将null值改为其他值即可解决。


总结

以上就是今天的学习内容啦~
如果有兴趣的话可以订阅专栏,持续更新呢~
咱们下期再见~
在这里插入图片描述

  • 9
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 6
    评论
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

颜颜yan_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值