色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

mysql的set和enum類型操作

林玟書2年前12瀏覽0評論

MySQL 中有兩種特殊的數據類型 SET 和 ENUM,它們允許我們在表格的某個特定列中設置一組合法的值。在我們創建表格或列時,我們可以根據需要定義列的類型。下面是關于這兩種類型的介紹。

SET 數據類型

SET 數據類型是將某個列限定在一組預先定義好的值中,允許用戶在這組值之間進行選擇,每個選擇都有一個固定的數字值與之對應。定義一個 SET 類型的列 即可設置允許的值。比如,我們創建一個數據庫表 user,它有一個字段 sex,只能取值男、女、未知,那么我們可以使用下面這個語句進行創建:

CREATE TABLE `user` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`username` varchar(50) NOT NULL,
`sex` set('男','女','未知') NOT NULL DEFAULT '未知',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

SET 類型的列有以下幾個特點:

  • SET 數據類型的列最多可以有 64 個元素。
  • SET 中的元素必須是常量,不能使用變量和表達式。
  • SET 中的元素是按照插入的先后順序,從 1 開始編號的。
  • 當設置不合法的值時,MySQL 自動截取掉超出列表的部分值,再進行插入。

ENUM 數據類型

ENUM 類型與 SET 類型類似,不同的是 ENUM 類型只允許取枚舉值中的一個元素。同樣以 sex 列為例,我們可以使用下面的語句來定義:

CREATE TABLE `user` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`username` varchar(50) NOT NULL,
`sex` enum('男','女','未知') NOT NULL DEFAULT '未知',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

ENUM 類型的列有以下幾個特點:

  • 對于 ENUM 列,MySQL 會將每個元素都映射為一個整數值,取值范圍是 1 到元素數量。
  • 如果聲明 ENUM 類列時沒有給出默認值,則其默認值為第一個枚舉值。
  • 當使用不在枚舉列表中的值進行 INSERT 操作時,MySQL 會產生一個警告,然后在枚舉列表中自動添加這個值。