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

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


文章目录

  • 前言
  • 默认约束
    • 定义
    • 测试
  • 非空约束
    • 定义
    • 测试
  • 总结


前言

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


默认约束

定义

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

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

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

测试

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

非空约束

定义

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

字段名 数据类型 not null;

测试

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


总结

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

你可能感兴趣的:(MySQL数据库,mysql,数据库,java)