专栏说明:本专栏用于MySQL学习,如对你学习有所帮助,可以点赞收藏关注,感谢三连。
- 博客主页:Duck Bro 博客主页
- 系列专栏:MySQL数据库
- 关注博主,后期持续更新系列文章
- 如果有错误感谢请大家批评指出,及时修改
- 感谢大家点赞👍收藏⭐评论✍
MySQL:常用数据类型
目录
- MySQL:常用数据类型
-
- [1. 数值类型](#1. 数值类型)
-
- [1.1 整型](#1.1 整型)
- [1.2 浮点型](#1.2 浮点型)
- [1.3 扩展资料](#1.3 扩展资料)
- [2. 字符串类型](#2. 字符串类型)
- [3. 日期类型](#3. 日期类型)
1. 数值类型
1.1 整型
数据类型 | 大小 | 说明 | 对应Java类型 |
---|---|---|---|
BIT[ (M) ] |
M指定位数,默认为1 | 二进制数,M范围从1到64,存储数值范围从0到2^M-1 | 常用Boolean对应BIT,此时默认是1位,即只能存0和1 |
TINYINT |
1字节 | Byte | |
SMALLINT |
2字节 | Short | |
INT |
4字节 | Integer | |
BIGINT |
8字节 | Long |
1.2 浮点型
数据类型 | 大小 | 说明 | 对应Java类型 |
---|---|---|---|
FLOAT(M, D) |
4字节 | 单精度,M指定长度,D指定小数位数。会发生精度丢失 | Float |
DOUBLE(M,D) |
8字节 | Double | |
DECIMAL(M,D) |
M/D最大值+2 | 双精度,M指定长度,D表示小数点位数。精确数值 | BigDecimal |
NUMERIC(M,D) |
M/D最大值+2 | 和DECIMAL一样 | BigDecimal |
1.3 扩展资料
数值类型可以指定为无符号(unsigned),表示不取负数。
sql
1字节(bytes)= 8bit。
对于整型类型的范围:
- 有符号范围:-2^(类型字节数*8-1)到2^(类型字节数*8-1)-1,如int是4字节,就 是-2^31到2^31-1
- 无符号范围:0到2^(类型字节数*8)-1,如int就是2^32-1
注意:尽量不使用unsigned,对于int类型可能存放不下的数据,int unsigned同样可能存放不下,与其如此,还不如设计时,将int类型提升为bigint类型。
2. 字符串类型
数据类型 | 大小 | 说明 | 对应Java类型 |
---|---|---|---|
VARCHAR (SIZE) |
0-65,535字节 | 可变长度字符串 | String |
TEXT |
0-65,535字节 | 长文本数据 | String |
MEDIUMTEXT |
0-16 777 215字节 | 中等长度文本数据 | String |
BLOB |
0-65,535字节 | 二进制形式的长文本数据 | byte[] |
3. 日期类型
数据类型 | 大小 | 说明 | 对应Java类型 |
---|---|---|---|
DATETIME |
8字节 | 范围从1000到9999年,不会进行时区的检索及转换。 | java.util.Date、java.sql.Timestamp |
TIMESTAMP |
4字节 | 范围从1970到2038年,自动检索当前时区并进行转换。 | java.util.Date、java.sql.Timestamp |