数据库设计里,约束是保障数据质量的底线。它们通过技术手段倒逼开发者插入正确的数据,从而确保存储信息的准确性。
一、非空约束
字段值通常有两种状态:null(默认)和 not null(不为空)。虽然数据库允许字段默认为空,但在实际开发中,应尽可能避免字段为空,因为空值往往无法参与运算。
这里需要区分 null 和空字符串 '':
null表示什么都没有,不占用存储空间(在某些引擎中),不参与计算。''表示有值,但内容为空。

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

当同时设置 not null 和 default 时:

注意:若表中既未设 default 也未设 not null,则默认为 default null;一旦设置了 not null,就不会再有 default null 的隐式行为。
三、Comment 列描述
列描述本质上就是注释,用于说明字段的含义,方便后续维护。

四、Zerofill 约束
zerofill 通常配合 int 类型使用。例如 int(10) 中的 10 代表显示宽度,不足部分会用 0 补齐。














