约束就是数据表中的限制条件,为保证表的完整和有效。
比如我要建立一个班级成员的信息表:
CREATE TABLE person
(person_id SMALLINT UNSIGNED,
name VARCHAR(20),
gender CHAR(1),
birth_date DATE,
CONSTRAINT pk_person PRIMARY KEY (person_id)
);
除了最后一项,其他各代码都好理解。最后一行代码的意思是我将person_id约束为主键并命名为pk_person。这是主键约束。还有非空约束(not null),唯一性约束(unique)。
其中gender性别列我希望只有’M’和’F’,这时可以用检查约束,如下:
gender CHAR(1) CHECK (gender in ('M','F')),
还可以将检查约束与数据类型融合到一起:
gender ENUM('M','F'),
最后改进后的代码是这样子的:
CREATE TABLE person
(person_id SMALLINT UNSIGNED,
name VARCHAR(20) NOT NULL,
gender ENUM('M','F'),
birth_date DATE UNIQUE,
CONSTRAINT pk_person PRIMARY KEY (person_id)
);