MYSQL中的几种约束方法

约束就是数据表中的限制条件,为保证表的完整和有效。
比如我要建立一个班级成员的信息表:

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)
);

你可能感兴趣的:(MYSQL中的几种约束方法)