MySQL支持的数据类型
MySQL支持所有标准的SQL数据类型包括严格数据类型(如integer、smallint、decimal、numberic)、近似数值类型(如float、real、double presision)
作为SQL标准的扩展,MySQL也支持整数类型(tinyint、mediumint、bigint)
1、数值类型
数据类型 | 字节数 |
---|---|
tinyint | 1 |
smallint | 2 |
mediumint | 3 |
int / integer | 4 |
bigint | 8 |
float | 4 |
double | 8 |
decimal(M,D) | 变长,整数部分和小数部分分开计算 |
2、字符串类型
8种基本的字符串类型char、varchar、binary、varbinary、blob、text、set类型
数据类型 | 字节数 | 类型描述 |
---|---|---|
char | 0~255 | 定长字符串 |
varchar | 0~65535 | 可变长字符串 |
tinyblob | 0~255 | 不超过255个字符的二进制字符串 |
tinytext | 0~255 | 短文本字符串 |
blob | 0~65535 | 二进制形式的长文本数据 |
text | 0~65535 | 长文本数据 |
mediumblob | 0~16777215 | 二进制形式的中等长度文本数据 |
mediumtext | 0~16777215 | 中等长度文本数据 |
longblob | 0~4294967295 | 二进制形式的极大文本数据 |
longtext | 0~4294967295 | 极大文本数据 |
varbinary(m) | 0~m | 允许0~m个字节的变长字节字符集 |
binary (m) | 0~m | 允许0~m个字节的变长字节字符集 |
3、日期和时间类型
数据类型 | 字节数 | 取值范围 | 日期格式 | 零值 |
---|---|---|---|---|
year | 1 | 1901~2155 | YYYY | 0000 |
date | 4 | 1000-01-01~9999-12-31 | YYYY-MM-DD | 0000-00-00 |
time | 3 | -838:59:59~838:59:59 | HH:MM:SS | 00:00:00 |
datetime | 8 | 1000-01-01 00:00:00~9999-12-31 23:59:59 | YYYY-MM-DD HH:MM:SS | 0000-00-00 00:00:00 |
timestamp | 4 | 1970-01-01 00:00:01~2038-01-19 03:14:07 | YYYY-MM-DD HH:MM:SS | 0000-00-00 00:00:00 |
每种日期和时间类型都有一个有效范围,如果插入的值超过这个范围,系统会报错,并将0值插入到数据库中,不同日期和时间类型有不同的零值。