枚舉類型在mysql怎么用

枚舉類型mysql的使用方法:1、插入數(shù)據(jù),語法為【insert into my_enum values (1),(2);】;2、錯誤數(shù)據(jù),語法為【insert into my_enum values(‘male’);】。

枚舉類型在mysql怎么用

相關(guān)學(xué)習(xí)推薦:mysql教程

枚舉類型在mysql的使用方法:

枚舉:enum,實(shí)現(xiàn)將所有可能出現(xiàn)的結(jié)果都設(shè)計(jì)好,實(shí)際上存儲的數(shù)據(jù)必須是規(guī)定好的數(shù)據(jù)中的一個。

枚舉的使用方式

定義:enum(可能出現(xiàn)的元素列表);

如enum(‘男’,‘女’)

使用:存儲數(shù)據(jù),只能存儲上面定義好的數(shù)據(jù)

意義在于:

1, 限定值的可能性!

2, 速度快,比普通的字符串速度快!

原因是枚舉型 是利用 整數(shù)進(jìn)行管理的,能夠2個字節(jié)進(jìn)行管理!

每個值,都是一個整數(shù)標(biāo)識,從第一個選項(xiàng)開始為1,逐一遞增!

管理時整數(shù)的形式,速度比字符串快!

一共有2 個字節(jié),0-65535,因此可以有 65535個選項(xiàng)可以使用!、

創(chuàng)建枚舉表

create?table?my_enum(   gender?enum('男','女','保密') )charset?utf8;

作用之一:規(guī)范數(shù)據(jù)格式,數(shù)據(jù)只能是規(guī)定的數(shù)據(jù)中的其中一個

作用之二:節(jié)省存儲空間(枚舉通常有一個別名:單選框),枚舉實(shí)際存儲的是數(shù)值,而不是字符串本身

在mysql中,系統(tǒng)也是自動轉(zhuǎn)換格式的,而且基本與php一樣(尤其是字符串轉(zhuǎn)數(shù)字)

?

插入數(shù)據(jù)

— 有效數(shù)據(jù)

insert?into?my_enum?values('男'),('保密');

— 數(shù)值插入枚舉元素

insert?into?my_enum?values?(1),(2);

原理在下面

錯誤數(shù)據(jù)

insert?into?my_enum?values('male');?--?錯誤:沒有該元素

?

證明字段存儲的數(shù)據(jù)是數(shù)值:將數(shù)據(jù)去除了 +0 就可以判斷出原來的數(shù)據(jù)存儲的到底是字符串還是數(shù)值,如果是字符串最終結(jié)果永遠(yuǎn)是0,否則是其他值

— 將字段結(jié)果取出來進(jìn)行+0運(yùn)算

select?gender?+?0,gender?from?my_enum;

找出了枚舉元素的實(shí)際規(guī)律:按照元素出現(xiàn)的順序,從1開始編號

?

枚舉原理:枚舉在進(jìn)行數(shù)據(jù)規(guī)范的時候(定義的時候),系統(tǒng)會自動建立一個數(shù)字與枚舉元素的對應(yīng)關(guān)系(關(guān)系放到日志中);然后在進(jìn)行數(shù)據(jù)插入的時候,系統(tǒng)自動將字符轉(zhuǎn)換成對應(yīng)的數(shù)字存儲,然后在進(jìn)行數(shù)據(jù)提取的時候,系統(tǒng)就自動將數(shù)字轉(zhuǎn)換成字符串顯示。

因?yàn)槲颐杜e實(shí)際存儲的是數(shù)值,所以可以直接插入數(shù)值

想了解更多編程學(xué)習(xí),敬請關(guān)注mysql教程欄目!

以上就是枚舉類型在

? 版權(quán)聲明
THE END
喜歡就支持一下吧
點(diǎn)贊15 分享