十、MySQL基础系列笔记之数据类型
每一个常量、变量和参数都是数据类型,用来指定一定的存储格式、约束和有效范围。
MySQL提供的数据类型有数值型、字符串类型、日期类型、时间类型。
整数类型
| 类型名称 | 字节 | 有符号(最小值) | 无符号(最大值) | 说明 |
|---|---|---|---|---|
| tinyint | 1 | -128~127 | 0~255 | 很小的整数 |
| smallint | 2 | -32768~32767 | 0~65535 | 小的整数 |
| mediumint | 3 | -8388608~8388607 | 0~16777215 | 中等大小的整数 |
| int | 4 | -2147483648~2147483647 | 0~4294967295 | 普通大小的整数 |
| bigint | 8 | -9223372036854775808~9223372036854775807 | 0~18446744073709551615 |
浮点型
| 类型名称 | 字节 | 说明 |
|---|---|---|
| float | 4 | 单精度浮点数 |
| double | 8 | 双精度浮点数 |
| decimaal(m,d) | M+2个字节 | 定点数 |
float类型取值范围
1)有符号取值范围:-3.402823466E+38~-1.175494351E-38
2)无符号取值范围:0和1.175494351E-38~3.402823466E+38
double类型取值范围
1)有符号取值范围:-1.7976931348623157E+308~-2.2250738585072014E-308
2)无符号取值范围:0和2.2250738585072014E-308~1.7976931348623157E+308
字符串类型
| 类型名称 | 字节 | 说明 |
|---|---|---|
| char(m) | m,m为0~255之间的整数 | 固定长度非二进制字符串 |
| varchar(m) | m,m为0~65535之间的整数 | 变长非二进制字符串 |
| tinytext | 允许长度0~255字节,值的长度+2个字节 | 非常小的非二进制字符串 |
| text | 允许长度0~65535字节,值的长度+2个字节 | 小的非二进制字符串 |
| mediumtext | 允许长度0~167772150字节,值的长度+3个字节 | 中等大小非二进制字符串 |
| longtext | 允许长度0~224字节,值的长度+4个字节 | 大的非二进制字符串 |
| enum | 1或2个字节,取决于枚举值的数目(最大值65535) | 枚举类型,只能有一个枚举字符串值 |
| set | 1,2,3,4或8个字节,取决于集合成员的数量(最多64个成员) | 一个设置,字符串对象可以有0个或多个成员 |
二进制字符串类型
| 类型名称 | 字节 | 说明 |
|---|---|---|
| bit(m) | 约(m+7)/8个字节 | 位字段类型 |
| binary(m) | m个字节 | 固定长度二进制字符串 |
| varbinary(m) | m+1字节 | 变长二进制字符串 |
| tinyblob(m) | m+1字节,m<255 | 非常小的blob |
| blob(m) | m+2字节,m<65535 | 小的blob |
| mediumblob(m) | m+3字节,m<167772150 | 中等大小的blob |
| longblob(m) | m+4字节,m<232 | 非常大的blob |
日期与时间类型
| 类型名称 | 字节 | 日期格式 | 范围 | 说明 |
|---|---|---|---|---|
| year | 1 | YYYY | 1901~2155 | |
| time | 3 | HH::MM::SS | -838:59:59~838:59:59 | |
| date | 3 | YYYY-MM-DD | 1000-01-01~9999-12-3 | |
| datetime | 8 | YYYY-MM-DD HH:MM:SS | 1000-01-01 00:00:00~9999-12-31 23:59:59 | |
| timestamp | 4 | YYYY-MM-DD HH:MM:SS | 1970-01-01 00:00:01 UTC ~ 2038-01-19 03:14:07 UTC |
JSON类型
JSON实际是JavaScript的一个子集,支持的数据类型有NUMBER、STRING、BOOLEAN、NULL、ARRAY、OBJECT。
2020-10-11
请登录后再评论