引入概念理解
表的约束是数据库中用于限制插入数据符合预期的规则。通过技术手段强制保证数据的准确性、一致性和完整性。虽然数据类型提供了基础约束,但额外的表约束能更好地从业务逻辑角度保证数据的合法性。常见的约束包括:null/not null, default, comment, zerofill, primary key, auto_increment, unique key 等。
空属性
数据库字段默认值为 null,但实际开发中应尽可能保证字段不为空(NOT NULL),因为空值无法参与运算。
创建班级表示例:
CREATE TABLE IF NOT EXISTS myclass (
class_name VARCHAR(20) NOT NULL,
class_room VARCHAR(20) NOT NULL,
other VARCHAR(20)
);
若未提供必填字段的值且无默认值,插入操作将失败。例如,缺少 class_room 或值为 NULL 时会报错。
默认值
当字段经常使用某个具体值时,可设置默认值(DEFAULT)。插入数据时若不指定该字段,则自动使用默认值。
CREATE TABLE IF NOT EXISTS msg (
name VARCHAR(20) NOT NULL,
age TINYINT UNSIGNED DEFAULT 18,
sex VARCHAR(3) NOT NULL DEFAULT '男'
);
若插入时未指定 age,默认为 18;未指定 sex,默认为 '男'。若设置了 NOT NULL 但未设 DEFAULT,忽略该列插入会报错。
列描述
列描述(COMMENT)用于说明字段含义,便于程序员或 DBA 理解表结构,不影响数据存储。
CREATE TABLE msg (
name VARCHAR(20) NOT NULL COMMENT '姓名',
age TINYINT UNSIGNED DEFAULT 0 COMMENT '年龄',
sex CHAR(2) COMMENT
);


