MySQL是一種開源的關系型數據庫管理系統,它支持多種數據類型,其中就包括ENUM。
在MySQL中,ENUM數據類型是一種枚舉類型。它允許存儲一組預定義的值,每個值都可以用一個名稱來標識。在數據庫中,ENUM類型的列只能取預定義值之一作為其值。
CREATE TABLE example ( id INT PRIMARY KEY, color ENUM('red', 'green', 'blue') );
在查詢一條記錄時,如果ENUM類型的列有值,則返回ENUM類型的值;如果ENUM類型的列沒有值,則返回NULL。
SELECT * FROM example WHERE id = 1;
在MySQL中,如果查詢結果中ENUM類型的列沒有值,則可以使用COALESCE函數返回一個默認值,如下所示:
SELECT COALESCE(color, 'unknown') AS color FROM example WHERE id = 1;
在MySQL中,ENUM類型的列可以用字符串或者數字表示。如果ENUM列用數字表示,則默認情況下從1開始遞增,如下所示:
CREATE TABLE example ( id INT PRIMARY KEY, color ENUM('red', 'green', 'blue') NOT NULL ); INSERT INTO example (id, color) VALUES (1, 'red'), (2, 'green'), (3, 'blue'); SELECT * FROM example;
如果希望從0開始遞增,可以在ENUM類型的值列表中指定0:
CREATE TABLE example ( id INT PRIMARY KEY, color ENUM('red', 'green', 'blue') NOT NULL ); INSERT INTO example (id, color) VALUES (1, 'red'), (2, 'green'), (3, 'blue'); ALTER TABLE example MODIFY color ENUM('red', 'green', 'blue') NOT NULL DEFAULT 0; SELECT * FROM example;
在MySQL中,ENUM類型的列的值可以通過ORDINAL函數獲取其在ENUM中的位置,如下所示:
SELECT ORDINAL(color) AS position FROM example WHERE id = 1;
此外,在MySQL中還可以使用SET類型代替ENUM類型,SET類型也是一種枚舉類型,但允許存儲多個值。
以上就是MySQL中ENUM類型的一些基礎知識,ENUM類型可以很方便地存儲一組預定義值,使數據庫的數據類型更加豐富。