MySQL 约束详解:数据准确性的守门员
数据库中的表约束就像是数据的'红绿灯',它们通过技术手段倒逼开发者插入正确的数据,从而保证数据库中存储信息的准确性。在实际开发中,理解并合理使用这些约束至关重要。
一、非空约束 (NOT NULL)
字段默认允许为 NULL,但在实际业务中,我们应尽可能避免字段为空,因为 NULL 值无法参与常规运算。
NULL 与 空字符串 '' 的区别:
NULL:表示什么都没有,是一个未知的状态。'':表示有值,但内容为空。
-- 创建时指定 NOT NULL
CREATE TABLE users (
id INT,
name VARCHAR(50) NOT NULL
);

二、默认值约束 (DEFAULT)
DEFAULT 类似于 C++ 中的缺省值。如果插入数据时未指定该列的值,系统将自动使用默认值。
注意事项:
- 若表中未设置
DEFAULT和NOT NULL,默认行为是DEFAULT NULL。 - 一旦设置了
NOT NULL,通常不再需要DEFAULT NULL。
-- 设置默认值
ALTER TABLE orders ADD COLUMN status INT DEFAULT 0;

三、列描述 (COMMENT)
列描述本质上就是注释,用于说明字段的用途,方便后续维护。
-- 添加列注释
ALTER TABLE users MODIFY COLUMN age INT COMMENT '用户年龄';








