非空约束是数据库设计中确保数据完整性的重要手段,它强制要求表中的特定列必须有值,不能为NULL。

 

非空约束的核心特性

1. 强制数据完整性:确保关键字段必须有值

2. 防止空值错误:避免应用程序因空值导致的逻辑错误

3. 与默认值约束配合:常与DEFAULT约束一起使用,确保字段始终有值

 

使用方法

创建表时设置非空约束

CREATE TABLE tb_dept4 (
    id INT(11) PRIMARY KEY,
    name VARCHAR(22) NOT NULL,  -- 部门名称不能为空
    location VARCHAR(50)
);

 

修改表添加非空约束

ALTER TABLE tb_dept4
CHANGE COLUMN location
location VARCHAR(50) NOT NULL;

 

删除非空约束

ALTER TABLE tb_dept4
CHANGE COLUMN location
location VARCHAR(50) NULL;

 

实际应用场景

1. 用户表的用户名和密码字段:必须要有值

2. 订单表的订单号和创建时间:不能为空

3. 产品表的关键信息字段:如产品名称、价格等

 

注意事项

1. 主键(PRIMARY KEY)自动具有非空属性,不需要额外声明NOT NULL

2. 非空约束与默认值约束常一起使用,确保字段始终有有效值

3. 添加非空约束前,应确保表中该列没有NULL值,否则操作会失败

4. 在已有数据的列上添加非空约束时,可以先设置默认值

 

最佳实践

 推荐做法:非空约束与默认值约束配合使用

CREATE TABLE users (
    user_id INT PRIMARY KEY AUTO_INCREMENT,
    username VARCHAR(50) NOT NULL,
    password VARCHAR(100) NOT NULL,
    email VARCHAR(100) NOT NULL,
    status TINYINT NOT NULL DEFAULT 1,  -- 默认激活状态
    created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP
);
点赞(1)

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

Dotcpp在线编译      (登录可减少运行等待时间)