MySQL筆記:數據類型
一、整數
標準SQL中支持INTEGER和SMALLINT,MySQL擴展了TINYINT、MEDIUMINT和BIGINT。
MySQL支持指定數據類型的顯示寬度,例如INT(8)指定INT類型的顯示寬度為8。
MySQL支持SQL標準中的BOOL和BOOLEAN,但會轉換成TINYINT(1)。
二、浮點數和定點數
MySQL使用浮點數FLOAT、DOUBLE和定點數DECIMAL來表示小數。
MySQL支持指定浮點數和定點數的精度和標度,精度指數據的總長度,標度指小數點後的長度。例如DECIMAL(M,D)指定精度為M,標度為D。
DECIMAL的存儲空間是根據其精度決定的,若未指定則默認為10位整數。
三、日期和時間
YEAR、DATE、TIME、DATETIME和TIMESTAMP表示日期和時間。
除TIMESTAMP外使用CURRENT_TIME或NOW()獲取當前系統時間,TIMESTAMP則使用CURRENT_TIMESTAMP、NULL或不指定值來獲取當前系統時間。
四、字符串
CHAR和VARCHAR類型均在創建時指定最大長度,例如CHAR(32)指定了該字符串的最大長度為32。VARCHAR可在最大長度內動態分配空間。
TEXT只能保存字符數據,包括TINYTEXT、TEXT、MEDIUMTEXT和LONGTEXT。
ENUM和SET是預定義的字符串列表,其中ENUM列表中的字符串會按聲明順序編號。ENUM只能從列表中選擇單值,SET可選擇多值。
五、二進制
BINARY和BARBINARY類型均在創建時指定最大長度,例如BINARY(32)指定了該二進制數的最大長度為32。VARBINARY可在最大長度內動態分配空間。
BIT類型也在創建時指定最大長度,但不同的是BIT支持的最大長度為64。
BLOB、TINYBLOB、MEDIUMBLOB和LONGBLOB類型用於保存數據量很大的二進制數據,例如圖片等。
MySQL筆記:數據類型