一、定点数类型
定点数类型 |
字节 |
DEC(M,D) |
M+2 |
DECIMAL |
|
M表示的数据的宽度
D表示小数点位数
float和double存储数据时存储的是近似值。
decimal存储的是字符串,提高了更多的精度。
在需要表示金额等货币类型时,优先选择decimal数据类型。
二、浮点数类型
浮点数类型 |
字节 |
float |
4 |
double |
8 |
三、位类型
四、整数类型
整数类型 |
字节 |
TINYINT |
1 |
SMALLINT |
2 |
MEDIUMINT |
3 |
INT和INTEGER |
4 |
BIGINT |
8 |
五、日期类型
日期和时间类型 |
字节 |
DATE |
4 |
DATETIME |
8 |
TIMESTAMP |
4 |
TIME |
3 |
YEAR |
1 |
如果插入的值超过了该类型的取值范围,则会插入默认值。
在具体应用中,各种日期和时间类型的应用场合如下:
年月日:date
年月日时分秒:datetime
需要经常插入或者更新日期为当前系统时间,或者需要让不同时区的用户使用:timestamp
时分秒:time
年份:year
六、字符串类型
char系列字符串类型 |
字节 |
char(M) |
M |
varchar(M) |
M |
如果需要存储少量字符串,则可以选择char和varchar类型。
如果需要判断所存储字符串长度是否经常变化,如果经常发生变化,则可以选择varchar类型,否则选择char类型。
Text系列字符串类型 |
字节 |
TINITEXT |
0~255 |
TEXT |
0~65535 |
MEDIUMTEXT |
0~167772150 |
LONGTEXT |
0~4294967295 |
一般用于需要存储大量字符串(存储文章内容的纯文本)
binary系列字符串类型 |
字节 |
binary(M) |
M |
varbinary(M) |
M |
与char和varchar类似,但可以存储二进制数据(例如图片、音乐或视频文件
blob系列字符串类型 |
字节 |
tinyblob |
0~255 |
blob |
0~2E16 |
mediumblob |
0~2E24 |
longblob |
0~2E32 |
与text系列类似,但可以存储二进制数据(例如图片、音乐或视频文件)