MySQL是一個(gè)開(kāi)源的關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng),它支持多種數(shù)據(jù)類(lèi)型。其中一種比較常用的數(shù)據(jù)類(lèi)型就是列表類(lèi)型。
CREATE TABLE my_table (
list_col ENUM('val1', 'val2', 'val3') NOT NULL
);
在創(chuàng)建表的時(shí)候,使用ENUM類(lèi)型來(lái)定義列表。ENUM類(lèi)型需要指定一個(gè)列表值數(shù)組,只有在數(shù)組中列出的值才是合法的。在上面的例子中,列出了三個(gè)值:val1、val2和val3。由于列表是固定的,所以當(dāng)我們要向表中插入數(shù)據(jù)時(shí),只能使用其中的一個(gè)值。
INSERT INTO my_table (list_col) VALUES ('val1');
在查詢(xún)時(shí),我們可以使用列表值進(jìn)行篩選。
SELECT * FROM my_table WHERE list_col = 'val2';
同時(shí),我們也可以使用ENUM類(lèi)型的索引值來(lái)查詢(xún)。
SELECT * FROM my_table WHERE list_col = 2;
需要注意的是,在使用ENUM類(lèi)型時(shí),需要指定列表的大小,即允許出現(xiàn)的值的數(shù)量。如果嘗試存儲(chǔ)不在列表中的值,MySQL會(huì)拋出一個(gè)錯(cuò)誤。
INSERT INTO my_table (list_col) VALUES ('val4');
Error Code: 1265. Data truncated for column 'list_col' at row 1
因此,在使用ENUM類(lèi)型定義列表類(lèi)型時(shí),需要仔細(xì)考慮允許的值范圍,并進(jìn)行充分的測(cè)試和驗(yàn)證。