mysql之set與enum的介紹
更新時(shí)間:2013年06月14日 10:31:15 作者:
本篇文章是對(duì)mysql中的set與enum進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
set,enum的數(shù)據(jù)類(lèi)型都是字符串類(lèi)型的對(duì)象,其中set最多可以包含64個(gè)元素,并且可以任意取到集合中的元素。而enum則是只能取到集合中的木一個(gè)元素,最多包含65536個(gè)元素,也就是說(shuō)set是多項(xiàng)選擇,enum是單項(xiàng)選擇了。
這里我們來(lái)比較下他們之間相同點(diǎn)和不同點(diǎn):
mysql> create table db_set(
-> set1 set('x','y','z') not null,
-> enum1 enum('one','two','three') not null);
Query OK, 0 rows affected (0.06 sec)
mysql> desc db_set;
+-------+---------------------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+---------------------------+------+-----+---------+-------+
| set1 | set('x','y','z') | NO | | NULL | |
| enum1 | enum('one','two','three') | NO | | NULL | |
+-------+---------------------------+------+-----+---------+-------+
mysql> insert into db_set values(1,3),(1,4),(4,1);
Query OK, 3 rows affected, 1 warning (0.00 sec)
Records: 3 Duplicates: 0 Warnings: 1
mysql> select * from db_set ;
+------+-------+
| set1 | enum1 |
+------+-------+
| x | three |
| x | |
| z | one |
+------+-------+
3 rows in set (0.01 sec)
這里我們看到了它們的輸出結(jié)果,我當(dāng)時(shí)也是很不解后來(lái)才知道:
set類(lèi)型中對(duì)于超出它能表示的范圍的,就用二進(jìn)制來(lái)加去:
Set元素
十進(jìn)制
二進(jìn)制
‘x'
1
0001
‘y'
2
0010
‘z'
4
0100
enum類(lèi)型超出自己能表示的范圍,就附空值了:
enum元素
索引
null
null
‘'
0
‘one'
1
‘two'
2
‘three'
3
現(xiàn)在大家明白了吧。
這里我們來(lái)比較下他們之間相同點(diǎn)和不同點(diǎn):
復(fù)制代碼 代碼如下:
mysql> create table db_set(
-> set1 set('x','y','z') not null,
-> enum1 enum('one','two','three') not null);
Query OK, 0 rows affected (0.06 sec)
mysql> desc db_set;
+-------+---------------------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+---------------------------+------+-----+---------+-------+
| set1 | set('x','y','z') | NO | | NULL | |
| enum1 | enum('one','two','three') | NO | | NULL | |
+-------+---------------------------+------+-----+---------+-------+
mysql> insert into db_set values(1,3),(1,4),(4,1);
Query OK, 3 rows affected, 1 warning (0.00 sec)
Records: 3 Duplicates: 0 Warnings: 1
mysql> select * from db_set ;
+------+-------+
| set1 | enum1 |
+------+-------+
| x | three |
| x | |
| z | one |
+------+-------+
3 rows in set (0.01 sec)
這里我們看到了它們的輸出結(jié)果,我當(dāng)時(shí)也是很不解后來(lái)才知道:
set類(lèi)型中對(duì)于超出它能表示的范圍的,就用二進(jìn)制來(lái)加去:
Set元素
十進(jìn)制
二進(jìn)制
‘x'
1
0001
‘y'
2
0010
‘z'
4
0100
enum類(lèi)型超出自己能表示的范圍,就附空值了:
enum元素
索引
null
null
‘'
0
‘one'
1
‘two'
2
‘three'
3
現(xiàn)在大家明白了吧。
相關(guān)文章
關(guān)于MySQL索引的幾點(diǎn)值得注意的事項(xiàng)
索引對(duì)查詢的速度有著至關(guān)重要的影響,MySQL索引的建立對(duì)于MySQL的高效運(yùn)行是很重要的2014-07-07淺談mysql通配符進(jìn)行模糊查詢的實(shí)現(xiàn)方法
這篇文章主要介紹了淺談mysql通配符進(jìn)行模糊查詢,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-07-07MySQL delete刪除數(shù)據(jù)后釋放磁盤(pán)空間的操作方法
這篇文章主要介紹了MySQL delete刪除數(shù)據(jù)后,釋放磁盤(pán)空間,文中給大家介紹了優(yōu)化表空間的多種方法,每種方法給大家介紹的非常詳細(xì),需要的朋友可以參考下2022-05-05Mysql中DATEDIFF函數(shù)的基礎(chǔ)語(yǔ)法及練習(xí)案例
Datediff函數(shù),最大的作用就是計(jì)算日期差,能計(jì)算兩個(gè)格式相同的日期之間的差值,下面這篇文章主要給大家介紹了關(guān)于Mysql中DATEDIFF函數(shù)的基礎(chǔ)語(yǔ)法及練習(xí)案例?的相關(guān)資料,需要的朋友可以參考下2022-09-09