用 MySQL 中的 ENUM 枚举类型创建表格简单易行(mysql中enum创表)
用 MySQL 中的 ENUM 枚举类型创建表格简单易行
在 MySQL 数据库中,ENUM 是一种数据类型,可以用来定义一组允许的值列表,然后将其应用于表格的某个列中。这使得在创建表格时,对于那些只有一些确定的取值的列,使用 ENUM 类型可以让表格设计更简单,同时也能减少数据入库时的错误。
一个例子可以是用 ENUM 来定义性别列,其中只有两个固定取值:男和女。在 MySQL 中,创建表格时可以使用如下的语句来定义 ENUM 类型的性别列:
CREATE TABLE `user` (
`id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(30) NOT NULL,
`gender` enum('male','female') NOT NULL, `age` int(11) NOT NULL,
PRIMARY KEY (`id`)) ENGINE=InnoDB DEFAULT CHARSET=utf8;
在上面的例子中,我们使用 enum(‘male’,’female’) 来定义了 gender 列,其中只有两个固定取值。在实际操作中也可以使用多个 ENUM 取值,比如定义一个支持星期几的列:
CREATE TABLE `task` (
`id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(30) NOT NULL,
`weekday` enum('mon','tue','wed','thu','fri','sat','sun') NOT NULL, `timestamp` datetime NOT NULL,
PRIMARY KEY (`id`)) ENGINE=InnoDB DEFAULT CHARSET=utf8;
在如上的例子中,我们使用 enum(‘mon’,’tue’,’wed’,’thu’,’fri’,’sat’,’sun’) 来定义了 weekday 列,其中只有七个固定的星期取值。
除了在 CREATE TABLE 语法中使用 ENUM 类型外,我们还可以在 ALTER TABLE 中使用 ENUM 类型来修改现有的表格结构。比如:
ALTER TABLE `user` CHANGE `gender` `gender` ENUM('man','woman') NOT NULL DEFAULT 'man';
在如上的例子中,我们通过 ALTER TABLE 语句修改了 user 表格中的 gender 列,将其定义为支持 ‘man’ 和 ‘woman’ 两个取值,同时设置了 NOT NULL 和 DEFAULT ‘man’ 约束。
使用 MySQL 中的 ENUM 枚举类型来创建表格是一种简单易行的方式。可以在创建表格时减少设计上的复杂性,同时也可以避免一些数据入库时的错误。在实际操作中,如果我们需要定义那些只有一些确定的取值的列,就不要犹豫,使用 ENUM 枚举类型即可。