一、整数部分

整数类型

字节

最小值

最大值

TINYINT

1

有符号-128

无符号0

有符号127

无符号255

SMALLINT

2

有符号-32768

无符号0

有符号32767

无符号65535

MEDIUMINT

3

有符号-8388608

无符号0

有符号8388607

无符号1677215

INT和INTEGER

4

有符号-2147483648

无符号0

有符号2147483647

无符号4294967295

BIGINT

8

有符号-9223372036854775808

无符号0

有符号9223372036854775807

无符号18446744073709551615

        注:创建无符号整数类型:create table tablename(id int unisgned);

 



二、浮点类型

浮点数类型

字节

最小值

最大值

备注

FLOAT

4

±1.75494351E-38

±3.402823466E+38

小数点位数<=10位

DOUBLE

8

±2.2250738585072014E-308

±1.7976931348623157E+308

小数点位数>10位

 



三、定点数类型

定点数类型

字节

最小值

最大值

DEC(M,D)和DECIMAL(M,D)

M+2

同DOUBLE

同DOUBLE

    注:FLOAT、DOUBLE存储数据时存储的是近似值,而DECIMAL存储的是字符串,因此提供了更高的精度,在需要表示金额等货币类型时优先选择DECIMAL数据类型。

 



四、位类型

位类型

字节

最小值

最大值

BIT(M)

1~8

BIT(1)

BIT(64)

    注:插入时,若需要存储二进制数字需用(b'11')进行转换。

 



五、日期和时间类型

日期和时间类型

字节

最小值

最大值

DATE

4

1000-01-01

9999-12-31

DATETIME

8

1000-01-01 00:00:00

9999-12-31 23:59:59

TIMESTAMP

4

19700101080001

2038年的某个时刻

TIME

3

-835:59:59

838:59:59

YEAR

1

1901

2155

    注:TIMESTAMP类型会在更新该行数据时自动更新为当前日期(该日期类型与实际时区相对应)

 



六、字符串类型

CHAR系列字符串类型

字节

描述

备注

CHAR(M)

M

M为0~255之间的整数

当存储的值长度达不到M时,会在后面追加空格

当取出该值时会自动将空格去除。

当然指定时PAD_CHAR_TO_FULL_LENGTH时,

在取数据时让尾部的空格保留

VARCHAR(M)

M

M为0~65535之间的整数

有一两个字符表示存储值的长度

    注:M表示字符数,而并非字节数,一个字符占几个字节根据字符集来确定。

 

TEXT系列字符串

字节

描述

TINYTEXT

0~255

值的长度为+2个字节

TEXT

0~65535

值的长度为+2个字节

MEDIUMTEXT

0~167772150

值的长度为+3个字节

LONGTEXT

0~4294967295

值的长度为+4个字节

 

BINARY系列字符串类型

字节

描述

备注

BINARY(M)

M

允许长度0~M

用于存储少量二进制数据

VARBINARY(M)

M

允许长度0~M

 

BLOB系列字符串类型

字节

备注

TINYBLOB

0~255

支持二进制数据(例如图片、音乐

或视频文件)

BLOB

0~2^16

MEDIUMBLOB

0~2^24

LONGBLOB

0~2^32