MySQL數據類型與約束

寫一篇文章記錄MySQL的數據類型與約束。


數據類型

MySQL支持的數據類型大致可以分爲三種,數值、時間/日期、字符串類型。

一、 數值類型

類型 大小 範圍(無符號Signed) 範圍(有符號Unsigned) 用途
TINYINT 1 字節 (-128,127) (0,255) 小整數值
SMALLINT 2 字節 (-32 768,32 767) (0,65 535) 大整數值
MEDIUMINT 3 字節 (-8 388 608,8 388 607) (0,16 777 215) 大整數值
INT/INTEGER 4 字節 (-2 147 483 648,2 147 483 647) (0,4 294 967 295) 大整數值
BIGINT 8 字節 (-9,223,372,036,854,775,808,9 223 372 036 854 775 807) (0,18 446 744 073 709 551 615) 極大整數值
FLOAT 4 字節 (-3.402 823 466 E+38,-1.175 494 351 E-38),0,(1.175 494 351 E-38,3.402 823 466 351 E+38) 0,(1.175 494 351 E-38,3.402 823 466 E+38) 單精度/浮點數值
DOUBLE 8 字節 (-1.797 693 134 862 315 7 E+308,-2.225 073 858 507 201 4 E-308),0,(2.225 073 858 507 201 4 E-308,1.797 693 134 862 315 7 E+308) 0,(2.225 073 858 507 201 4 E-308,1.797 693 134 862 315 7 E+308) 雙精度/浮點數值
DECIMAL 對DECIMAL(M,D) ,如果M>D,爲M+2否則爲D+2 依賴於M和D的值 依賴於M和D的值 小數值

二、 時間和日期

類型 大小/(字節) 範圍 格式 用途
DATE 3 1000-01-01/9999-12-31 YYYY-MM-DD 日期值
TIME 3 ‘-838:59:59’/‘838:59:59’ HH:MM:SS 時間值或持續時間
YEAR 1 1901/2155 YYYY 年份值
DATETIME 8 1000-01-01 00:00:00/9999-12-31 23:59:59 YYYY-MM-DD HH:MM:SS 混合日期和時間值
TIMESTAMP 4 1970-01-01 00:00:00/2038;結束時間是第 2147483647 秒,北京時間 2038-1-19 11:14:07,格林尼治時間 2038年1月19日 凌晨 03:14:07 YYYYMMDD HHMMSS 混合日期和時間值,時間戳

三、 字符串類型

字符串類型指CHAR、VARCHAR、BINARY、VARBINARY、BLOB、TEXT、ENUM和SET。

類型 大小 用途
CHAR 0-255字節 定長字符串
VARCHAR 0-65,535字節 變長字符串
TINYBLOB 0-255字節 不超過 255 個字符的二進制字符串
TINYTEXT 0-255字節 短文本字符串
BLOB 0-65,535字節 二進制形式的長文本數據
TEXT 0-65,535字節 長文本數據
MEDIUMBLOB 0-16,777,215字節 二進制形式的中等長度文本數據
MEDIUMTEXT 0-16,777,215字節 中等長度文本數據
LONGBLOB 0-4,294,967,295字節 二進制形式的極大文本數據
LONGTEXT 0-4,294,967,295字節 極大文本數據

約束條件

類型 用途
NULL 設置該字段不允許爲NULL,否則報錯
AUTO_INCREMENT 定義字段爲自增的屬性,一般用於主鍵,數值會自動加1
PRIMARY KEY 設置該字段爲主鍵,自動創建索引且值唯一,數值不能爲NULL
UNIQUE 設置該字段不允許重複
DEAFULT 設置該字段的默認值,當插入記錄未填寫該字段時,自動填入默認值
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章