• 【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值改为其他值即可解决。


    总结

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

  • 相关阅读:
    electron打包后主进程下载文件崩溃
    大气污染扩散模型Calpuff建模、数据后处理及应用
    SpringBoot+Vue项目在线学生请假管理系统
    目标检测YOLO实战应用案例100讲-面向小目标检测的多尺度特征融合(续)
    Spring 事务和事务传播机制
    Python加解压文件gzip库操作一文详解
    搭建花店小程序商城的详细步骤
    【力扣-每日一题】213. 打家劫舍 II
    php反序列化
    LangChain支持哔哩哔哩视频总结
  • 原文地址:https://blog.csdn.net/m0_55394328/article/details/127572372