MySQL的資料類型
注意
選擇合适的資料類型,能節省儲存空間,提升計算性能。
(1)在符合應用要求(取值範圍、精度)的前提下,盡量使用“短”資料類型
(2)資料類型越簡單越好。
(3)在MySQL中,應該用内置的日期和時間資料類型,而不是用字元串來存儲日期和時間。
(4)盡量采用精确小數類型(例如decimal),而不采用浮點數類型。
(5)盡量避免NULL字段,建議将字段指定為NOT NULL限制。
數值類型
整數類型
類型
大小
範圍(有符号)
範圍(無符号)
用途
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 位元組
(-9223372036854775808,9223372036854775 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 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
雙精度
浮點數
值
DECIMAL
DECIMAL
(length,
precision)
length決定小數的最大位數
precision用于設定小數位數
length決定小數的最大位數
precision用于設定小數位數
小數值
備注:decimal(length, precision)用于表示精度确定(小數點後數字的位數确定)的小數類型,length決定該小數的最大位數,precision用于設定精度(小數點後數字的位數)。
例如:decimal (5,2)表示小數取值範圍:-999.99~999.99 decimal (5,0)表示: -99999~99999的整數。
字元串類型
類型
大小
用途
CHAR(n)
0-255位元組
定長字元串
VARCHAR(n)
0-65535 位元組
變長字元串
TINYTEXT
0-255位元組
短文本字元串
TEXT
0-65 535位元組
長文本資料
MEDIUMTEXT
0-16 777 215位元組
中等長度文本資料
LONGTEXT
0-4 294 967 295位元組
極大文本資料
日期/時間類型
類型
大小(位元組)
範圍
格式
用途
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’
YYYY-MM-DD HH:MM:SS
混合日期和時間值,
時間戳
複合類型
類型
最大值
說 明
示例
Enum (“value1”, “value2”, …)
65535
該類型的列隻可以容納所列值之一或為NULL
Gender enum(‘男‘,‘女)
Set (“value1”, “value2”, …)
64
該類型的列可以容納一組值或為NULL
Interest set(‘唱歌‘,‘遊泳‘,‘網球’)
二進制類型
類型
大小
用途
Binary(n)
0-255位元組
較短的二進制
VARBinary(n)
0-65535 位元組
較長的二進制
Bit(n)
0-64位元組
短二進制
TINYBLOB
0-255位元組
較短的二進制
TINYBLOB
0-255位元組
較短的二進制
BLOB
0-65 535位元組
圖檔、聲音等檔案
MEDIUMBLOB
0-16 777 215位元組
圖檔、聲音、視訊等檔案
LONGBLOB
0-4 294 967 295位元組
圖檔、聲音、視訊等檔案