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