SQL中数据类型有哪些类型?
数值型,字符型,日期时间型,字节型,货币型,其他特殊类型等。
接下来深海整理的表格中,字体加粗的数据类型为常用数据类型。
数值型
类型 |
大小(字节) |
范围 |
描述 |
类比Java类型 |
BIT |
<=1 |
(0,1) |
逻辑数值 |
boolean |
TINYINT |
1 |
(-128,127) |
极小整数值 |
byte |
SMALLINT |
2 |
(-32 768,32 767) |
小整数值 |
short |
MEDIUMINT |
3 |
(-8 388 608,8 388 607) |
中整数值 |
short / 较小int |
INT / INTEGER |
4 |
(-2 147 483 648,2 147 483 647) |
整数值 |
int |
BIGINT |
8 |
(-9 233 372 036 854 775 808, 9 223 372 036 854 775 807) |
大整数值 |
long |
FLOAT |
4 |
(-3.40E+38 ~ +3.40E+38) |
单精度浮点数值 |
float |
DOUBLE |
8 |
(-1.79E+308 ~ +1.79E+308) |
双精度浮点数值 |
double |
DECIMAL |
M>D? M+2:D+2 |
取决于M和D的值,D:小数位 M:数据的总长度(不含小数点) |
十进制精准数值 |
无 |
字符型
类型 |
大小(字节) |
描述 |
类比Java类型 |
CHAR |
0-255 |
定长字符串 |
≈String |
VARCHAR |
0-65535 |
变长字符串 |
≈String |
TINYTEXT |
0-255 |
短文本数据 |
≈String |
TEXT |
0-65 535 |
文本数据 |
≈String |
MEDIUMTEXT |
0-16 777 215 |
大文本数据 |
≈String |
LONGTEXT |
0-4 294 967 295 |
极大文本数据 |
≈String |
TINYBLOB |
0-255 |
短二进制文本 |
≈String.getBytes() |
BLOB |
0-65 535 |
二进制文本 |
≈String.getBytes() |
MEDIUMBLOB |
0-16 777 215 |
大二进制文本 |
≈String.getBytes() |
LONGBLOB |
0-4 294 967 295 |
极大二进制文本 |
≈String.getBytes() |
时间型
类型 |
大小(字节) |
范围(格林威治) |
格式 |
描述 |
YEAR |
1 |
1901 — 2155 |
YYYY |
年份值 |
DATE |
3 |
1000-01-01 — 9999-12-31 |
YYYY-MM-DD |
日期值 |
TIME |
3 |
-838:59:59 — 838:59:59 |
HH:MM:SS |
时间值 或 持续时间 |
DATETIME |
8 |
1000-01-01 00:00:00 — 9999-12-31 23:59:59 |
YYYY-MM-DD HH:MM:SS |
日期时间值混合 |
TIMESTAMP |
8 |
1970-01-01 00:00:00 — 2038-01-19 3:14:07 |
YYYYMMDD HHMMSS |
日期和时间值的混合时间戳 |