MySQL常用数据类型
数据类型 | 大小 | 范围(有符号,无符号时x2) | 对应Java数据类型 |
---|---|---|---|
整数 | |||
tiny int | 1 字节 | -128 ~ 127 | Integer |
small int | 2 字节 | -32 768 ~ 32 767 | Integer |
medium int | 3 字节 | -8 388 608 ~ 8 388 607 | Integer |
int或Integer | 4 字节 | -2 147 483 648 ~ 2 147 483 647 | Long |
big int | 8 字节 | ± 9x10的18次方 | java.math.BigInteger |
浮点数 | |||
float | 4字节 | Float | |
double | 8字节 | Double | |
字符串 | |||
char | 定长字符串,0 ~ 255 字节 | String | |
varchar | 变长字符串,0 ~ 65535 字节 | String | |
text | 长文本数据,0 ~ 65535 字节 | String | |
日期与时间 | |||
year | 1字节 | YYYY | java.sql.Date |
date | 3字节 | YYYY-MM-DD | java.sql.Date |
time | 3字节 | HH:MM:SS | java.sql.Time |
date time | 8字节 | YYYY-MM-DD HH:MM:SS | java.sql.Timestamp |
time stamp | 8字节 | 时间戳,表示当前时间到 Unix元年的秒数,格式与date time一样,适用于不同时区 | java.sql.Timestamp |
数值类型小解
-
int(11)
(1)11表示的是显示宽度,与该字段存储大小无关,超出显示宽度仍然会存储,只有超出存储范围时才会截取;
(2)若该字段使用zerofill,则不足位用0补充。 -
int与integer没有区别,只是两种形式,对应的Java类型位Long,因为无符号时范围超过了Integer的范围。
字符类型小解
- 占用大小
一个英文字符占用一个字节;
gbk编码,一个字符最多2个字节;
utf-8编码,一个字符最多3个字节。 - char
0~255,定长字符串,比范围大的值会被截断,小的将用空格作填补。 - varchar
0~65535,变长字符串,比范围大的值会被截断,小的则不会填补。