MySQL 表约束详解:非空、主键与外键的作用
表结构设计离不开约束。通过合理的约束机制,我们可以从技术层面倒逼数据录入的准确性,确保数据库中长期存储的数据是可信的。
一、非空约束 (NOT NULL)
字段值通常有两种状态:NULL(默认)和 NOT NULL(不为空)。虽然数据库允许字段默认为空,但在实际开发中,应尽可能避免关键字段为 NULL,因为空值往往无法参与正常的数值运算或逻辑判断。
这里需要区分 NULL 和空字符串 '':
NULL:表示'什么都没有',在数据库中是一个特殊的标记。'':表示'有值,但是内容为空'。

二、Default 约束
DEFAULT 类似于 C++ 中的缺省参数值。当插入数据时未指定该字段的值,系统会自动填充预设的默认值。

结合 NOT NULL 使用效果更佳:

注意: 如果表中既没有设置 DEFAULT 也没有设置 NOT NULL,默认行为是允许 NULL。一旦设置了 NOT NULL,则不再隐含 DEFAULT NULL 的行为。
三、Comment 列描述
列描述本质上就是注释,用于说明字段的用途,方便后续维护。

四、ZeroFill 约束
ZEROFILL 主要用于数字显示。单独使用 INT(10) 意义不大,但配合 ZEROFILL 后,不足位数的数字会用 补齐显示。













