MySQL字段中的枚举

来源:互联网 发布:淘宝客服工作时间安排 编辑:程序博客网 时间:2024/05/07 11:42

字段是MySQL数据库的重要组成部分,下文对MySQL字段中的枚举作了详尽的阐述,如果您对此方面感兴趣的话,不妨一看。

AD:

MySQL字段相信大家都有一些了解,下面将为您介绍的是MySQL字段中的枚举,希望对您学习MySQL字段方面能够有所帮助。

MySQL字段中的枚举:

mysql> create table meiju(f1 enum('1','2','3','4','5','6'));
Query OK, 0 rows affected (0.92 sec)

mysql> desc meiju;
+-------+-------------------------------+------+-----+---------+-------+
| Field | Type                          | Null | Key | Default | Extra |
+-------+-------------------------------+------+-----+---------+-------+
| f1    | enum('1','2','3','4','5','6') | YES  |     | NULL    |       |
+-------+-------------------------------+------+-----+---------+-------+

mysql> insert into meiju values(2);

mysql> insert into meiju values("2");

mysql> insert into meiju values("6");

序号为 1  2  3  4  5

内容没有序号也没有就不能插入

mysql> insert into meiju values(8);
ERROR 1265 (01000): Data truncated for column 'f1' at row 1
mysql> insert into meiju values("8");
ERROR 1265 (01000): Data truncated for column 'f1' at row 1

mysql> select * from meiju;
+------+
| f1   |
+------+
| 1    |
| 2    |
| 2    |
| 6    |
+------+

改表

mysql> alter table meiju modify f1 enum("a","b","c","d","e","f");
Query OK, 4 rows affected (0.39 sec)
Records: 4  Duplicates: 0  Warnings: 0

可以自动将记录当序号匹配成新的字段值(挺神奇)

mysql> select * from meiju;
+------+
| f1   |
+------+
| a    |
| b    |
| b    |
| f    |
+------+

一个记录只能有一个枚举值 不像set 可以累加

mysql> insert into meiju values(7);
ERROR 1265 (01000): Data truncated for column 'f1' at row 1

注意最好输入的是值得时候值要加引号 否则当作序号来处理

当带引号的数字不符合枚举要求时会试一试当作序号合适不合适

如 insert into meiju values("7");

7不在枚举值内 就插入第7个值 如果没有7个值则报错

集合 和 枚举的区别

1 集合可以有64个值 枚举有65535个

2 集合的序号是 1 2 4 8 16 枚举是 1 2 3 4 5 6

3 集合一个字段值可以有好几个值

+-------+
| f1    |
+-------+
| f,m   |
+-------+

而枚举只能有一个