MySQL中ENUM類型和SET類型的使用

ENUM類型和SET類型是非常相似的,都爲一個字符串對象,而兩者的區別除了存儲上的不同之外,最主要的是SET類型一次可以選擇多個成員,而ENUM則只能選一個。具體如下分說:

1、爲了方便後續說明,先創建一張表std,並在其中定義一個sex字段,表示是男是女,代碼如下:

mysql> CREATE TABLE std (name varchar(10), sex enum('male', 'female'),courses set('a','b','c','d','e'));

2、ENUM類型

ENUM類型也叫枚舉類型,下面以示例說明下:

mysql> INSERT INTO std sex VALUES('male'),('1'),('female'),(NULL);
上面針對sex字段插入了四條數據,對應插入結果會是'MALE','MALE','FEMALE',NULL

從上面結果可以看出來,ENUM類型會將大小寫全部轉爲大寫來顯示,而且如果插入數據不在ENUM指定範圍內的值時,並沒有返回警告,而是插入了ENUM類型定義的第一個值。

3、SET類型

SET類型可以從允許值集合中選擇任意1個或多個元素進行組合,所以對於輸入的值只要是在允許的組合範圍內,都可以正確地注入到SET類型的列中,對於超出允許值範圍的值,將不允許注入到設置SET類型的列中。示例如下:

mysql> INSERT INTO std courses VALUES('a,b,c'),('a,b'),('c,d'),('d,e');
上述可見,如果取存多個類枚舉數據時,可使用SET類型,因爲在SET類型中,不僅可以集中一次取出數據,而且在寫入SET數據時還會檢查該數據集合中的重複成員,將之取一次處理,如'a,b,a',寫入後爲'a,b'。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章