首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >【MySQL知识点】默认约束、非空约束

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

作者头像
颜颜yan_
发布2022-12-01 19:25:44
发布2022-12-01 19:25:44
3.8K0
举报

🙋‍ 哈喽大家好,本次是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值改为其他值即可解决。


总结

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

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-10-28,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 文章目录
  • 前言
  • 🍎默认约束
    • 定义
    • 测试
  • 🍎非空约束
    • 定义
    • 测试
  • 总结
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档