mysql中enum類型理解


ENUM是枚舉類型,它雖然只能保存一個值,卻能夠處理多達65535個預定義的值。下面是我寫的一個mysql語句

CREATE TABLE student(
id INT(11) PRIMARY key auto_increment,
name VARCHAR(10) not null,
sex ENUM('boy','girl','secret') DEFAULT 'secret'
)ENGINE=INNODB

如果sex列中插入了除bor,girl,secret之外的其它字符,則視為空字符串

 

1 每個枚舉值都有一個索引:

  • 列出的元素被分配從1開始的索引值。
  • 空字符串作為錯誤值的索引值為0。可以使用select語句找出那些被指定無效枚舉值的數據行。
SELECT * FROM tbl_name WHERE enum_col=0;
  • NULL的索引為NULL。
  • 這里的索引只是指出枚舉表里該元素的位置,和表索引不同。

2 最多可以有65535個不同的元素值(實際限制小於3000)。 
3 枚舉值不能是0或空字符串(雖然存在特殊情況) 

4.enum在底層的存儲方式是以整型進行存儲的,比如這樣的字段sex enum('male' , 'female' , 'both' , 'unknow')在查詢時where sex='male'和where sex=1是等效的


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM