数据库设计离不开约束,它们就像数据的守门员,确保存入的信息准确无误。约束的本质是通过技术手段限制非法数据录入,倒逼开发者在应用层或数据库层保证数据质量。
一、非空约束(NOT NULL)
字段值通常有两种状态:NULL 和 NOT NULL。虽然数据库默认允许字段为空,但在实际开发中,应尽可能将核心字段设为 NOT NULL,因为空值往往无法参与运算,且容易引发逻辑歧义。
这里需要区分 NULL 和空字符串 '':
NULL:表示什么都没有,是缺失值。'':表示有值,但内容为空。

二、默认值约束(DEFAULT)
DEFAULT 类似于 C++ 中的缺省值。如果插入数据时未指定该列的值,系统会自动填充默认值。
当同时设置 NOT NULL 和 DEFAULT 时,若未提供值则使用默认值;若未设置这两项,默认行为通常是 DEFAULT NULL。一旦设置了 NOT NULL,就不会再有默认的 NULL 值。

三、列描述(COMMENT)
给字段添加注释,方便后续维护人员理解字段的业务含义,这与代码注释类似。

四、零填充约束(ZEROFILL)
ZEROFILL 通常配合整数类型使用。例如 INT(10) 定义显示宽度为 10,若数值不足 10 位,左侧会用 0 补齐。











