MySQL 表约束实战指南
设计表结构时,约束是保障数据质量的最后一道防线。它的核心在于通过规则限制非法数据写入,倒逼开发者遵循规范。
1. 非空约束 (NOT NULL)
字段默认允许为 NULL,但实际开发中应尽量避免。因为 NULL 值无法参与运算,且逻辑上容易引发歧义。
NULL 与空字符串的区别:
NULL:表示什么都没有,占位符。'':表示有值,只是内容为空。

2. 默认值约束 (DEFAULT)
这就像 C++ 里的缺省参数。如果插入数据时未指定该列,系统会自动填充默认值。
注意:若未设置 DEFAULT 和 NOT NULL,默认行为是 DEFAULT NULL;一旦设置了 NOT NULL,则不再隐含 DEFAULT NULL。

3. 列描述 (COMMENT)
给字段加注释,方便后续维护。这和代码里的注释是一个道理,别嫌麻烦。

4. 零填充 (ZEROFILL)
这个约束通常配合整数类型使用。比如 INT(10) 加上 ZEROFILL,显示不足 10 位时自动补 0。









