当前位置: 首页 > article >正文

【重学 MySQL】六十二、非空约束的使用

【重学 MySQL】六十二、非空约束的使用

  • 定义
  • 目的
  • 关键字
  • 特点
  • 作用
  • 创建非空约束
  • 删除非空约束
  • 注意事项

在这里插入图片描述
在MySQL中,非空约束(NOT NULL Constraint)是一种用于确保表中某列不允许为空值的数据库约束。

定义

非空约束(NOT NULL Constraint)是一种数据库约束,用于限制表中某列的值不能为空。当对该列进行插入或更新操作时,如果未提供值或提供的值为NULL,数据库系统将拒绝这些操作并返回错误。

目的

  • 维护数据完整性:非空约束确保特定列的数据始终存在,防止因空值而导致的数据不完整问题。
  • 提高数据质量:通过限制空值的输入,非空约束有助于提高整个数据库的数据质量。
  • 简化数据维护:非空约束能够减少数据清洗和验证的工作量,因为数据库会自动执行这些检查。
  • 支持业务逻辑:在某些业务场景中,某些字段的值必须是必填的,非空约束能够确保这一点。

关键字

not null

特点

  • 默认,所有类型的值都可以是 null,包括 intfloat 等数据类型
  • 非空约束只出现在表对象的列上,只能某个列单独限定非空,不能组合非空
  • 一个表可以有很多列都分别限定为非空
  • 空字符串''不等于 null0也不等于`n

作用

非空约束的作用是保证特定列的数据始终包含有效值,防止在插入或更新操作时出现空值,从而维护数据的完整性和一致性。
`

创建非空约束

  1. 在创建表时设置非空约束

    • 可以在创建表时使用NOT NULL关键字来设置非空约束。
    • 语法格式:
    CREATE TABLE table_name (
    	column1 data_type NOT NULL,
    	column2 data_type,
    	...
    );
    
    • 示例:
    CREATE TABLE students (
    	id INT PRIMARY KEY AUTO_INCREMENT,
    	name VARCHAR(50) NOT NULL,
    	age INT,
    	gender VARCHAR(10)
    );
    

    在上面的示例中,name列被定义为非空约束,因此在插入数据时,name列不能为空。

  2. 在修改表时添加非空约束

    • 如果在创建表时忘记了为字段设置非空约束,也可以通过修改表来添加非空约束。
    • 语法格式:
    ALTER TABLE table_name MODIFY column_name data_type NOT NULL;
    

    或者:

    ALTER TABLE table_name CHANGE COLUMN column_name column_name data_type NOT NULL;
    
    • 示例:
    ALTER TABLE students MODIFY name VARCHAR(50) NOT NULL;
    

    或者:

    ALTER TABLE students CHANGE COLUMN name name VARCHAR(50) NOT NULL;
    

删除非空约束

  1. 在修改表时删除非空约束

    • 如果需要删除非空约束,可以使用ALTER TABLE语句。
    • 语法格式:
    ALTER TABLE table_name MODIFY column_name data_type NULL;
    

    或者:

    ALTER TABLE table_name CHANGE COLUMN column_name column_name data_type NULL;
    
    • 示例:
    ALTER TABLE students MODIFY name VARCHAR(50) NULL;
    

    或者:

    ALTER TABLE students CHANGE COLUMN name name VARCHAR(50) NULL;
    

注意事项

  1. 合理使用非空约束:非空约束有助于保证数据的完整性、提高查询效率,并规范数据录入的过程。但在应用非空约束时需要谨慎考虑业务需求,确保其在特定场景下的合理性和有效性。过度使用非空约束可能会限制数据录入的灵活性。
  2. 与默认值约束的配合使用:有时为了确保数据的完整性,可以同时使用非空约束和默认值约束。这样,在插入数据时如果未指定非空列的值,数据库将自动使用默认值。

总之,非空约束是MySQL中确保表中列值不能为空的重要约束。通过合理使用非空约束,可以有效地维护数据的完整性和一致性。


http://www.kler.cn/news/339406.html

相关文章:

  • Linux-磁盘优化的几个思路
  • OJ在线评测系统 微服务 用分布式消息队列 RabbitMQ 解耦判题服务和题目服务 手搓交换机和队列 实现项目异步化
  • 【动态规划-最长公共子序列(LCS)】【hard】力扣1092. 最短公共超序列
  • 独家揭秘!成为CSDN人工智能优质创作者:我的故事和心得
  • Redis-消息队列
  • JavaScript 变量的简单学习
  • 贪心算法c++
  • docker compose入门3—docker compose yaml字段详解
  • Polars:从 Apache Spark 过渡指南
  • 探索杨辉三角形的奥秘:C#实现
  • Python | Leetcode Python题解之第464题我能赢吗
  • 【什么是回调机制?一篇文章掌握回调机制及思想】
  • 在虚拟机里试用了几个linux操作系统
  • 网络编程(14)——基于单例模板实现的逻辑层
  • 收银台实现iframe跨页面调用函数的方法——未来之窗行业应用跨平台架构
  • 《系统架构设计师教程(第2版)》第17章-通信系统架构设计理论与实践-07-通信网络构建案例分析
  • 毕设 深度学习语义分割实现弹幕防遮(源码分享)
  • 容器管理工具Docker
  • List子接口
  • C语言 | 第十一章 | static 日期函数 数学函数