MySQL 作為一款常用的關系型數據庫,可以幫助我們存儲和管理海量數據。在 MySQL 數據庫中,我們無論是創建表還是修改表結構,都需要定義字段(列)。在字段定義的時候,我們可以限制該字段可以取到的值的范圍,以保證數據的完整性。下面我們就來介紹一下 MySQL 如何設置字段的取值范圍。
/* 創建一個表 */ CREATE TABLE student ( id INT(11) PRIMARY KEY, name VARCHAR(20), age INT(3), sex ENUM('男', '女'), grade FLOAT(2, 1) );
上述的 SQL 語句創建了一個名為 student 的表,其中包含了 id、name、age、sex、grade 五個字段。現在我們來分別介紹一下如何設置字段的取值范圍。
1. INT / TINYINT / SMALLINT / MEDIUMINT / BIGINT 類型
/* 定義一個 int 類型的 age 字段,可以存儲到達 0~99 的年齡 */ age INT(2) UNSIGNED ZEROFILL
上面的語句中,使用了 INT(2) 表示 age 字段是一個整型字段,長度為 2。UNSIGNED 表示數值是無符號類型,ZEROFILL 表示填充前導零。該字段可以存儲長度不超過2位的整數,即可存儲0~99的年齡。
2. DECIMAL / FLOAT / DOUBLE 類型
/* 定義一個 Double 類型的 grade 字段,可以存儲小數位數為1的浮點數*/ grade DOUBLE(4,1) UNSIGNED
上面的語句中,使用了 DOUBLE(4,1) 表示 grade 字段是一個雙精度浮點型字段,總長度為4,小數位數為1。UNSIGNED 表示數值是無符號類型,該字段可以存儲小數點前三位,小數點后1位的浮點數。
3. CHAR / VARCHAR / TEXT / ENUM / SET 類型
/* 定義一個 ENUM 類型的 sex 字段,只能存儲 '男' 或 '女'*/ sex ENUM('男', '女')
上面的語句中,使用了 ENUM('男', '女') 表示 sex 字段是一個枚舉型字段,只能存儲 '男' 或 '女' 兩種值。注意:在使用 ENUM 時必須給出所有可取值的枚舉值。
通過以上的介紹,我們可以看到在 MySQL 中如何設置字段的取值范圍。當然,我們還可以應用在其他類型的字段上,通過合理地使用數據類型和長度,可以大大提高數據的完整性和準確性。