数据库中表的列类型
数值类型
数据库数值类型 描述 大小(字节) 对应Java中的类型
tinyint 特别小的数据 1Byte byte
smallint 较小的整数 2Byte short
mediumint 中等大小的整数 3Byte
int 标准的整数 4Byte int
bigint 较大的整数 8Byte long
float 浮点数(单精度) 4Byte float
double 浮点数(双精度) 8Byte double
decimal 字符串形式的浮点数 BigDecimal
注:在金融等金额计算时,一般使用decimal来表示金额大小,因为使用double会有精度问题,而使用字符串形式的浮点数则可以完整得表示出金额的大小。
字符串
数据库数值类型 描述 大小(字节) 对应Java中的类型
char 固定大小的字符串 0-255 String
varchar 可变字符串 0-65535 String
tinytext 微型文本 2^8 -1 =255 String
text 文本串 2^16 -1 =65535 String
日期时间
数据库数值类型 描述 对应Java中的类型
date 日期格式 Date,LocalDate
time 时间格式 LocalTime
datetime 日期时间格式 Date,LocalDateTime
timestamp 时间戳,1970.1.1到现在的毫秒数 Timestamp
year 年份 Year
注:yyyy-MM-dd HH:mm:ss 表示年月日时分秒。月:用MM大写表示是与时间单位的mm作为区别,而时:HH用大写表示24小时制,用小写hh则是12小时制。
VARCHAR 和 TEXT 长度问题
VARCHAR :varchar在mysql中满足最大行限制,也就是 65535(16k)字节,在mysql中使用 uft-8(mysql中的 utf-8 和我们正 常的编码utf-8不同)字符集一个字符占用三个字节。
①使用 utf-8 字符编码集 varchar 最大长度是 (65535-1)/3=21844 个字符(由于会有1字节的额外占用空间开销, 所以减1)。 ②使用 utf-8mb4 字符集(mysql中 utf-8mb4 字符集也就是我们通常使用的 utf-8 字符集),mysql中使用 utf8mb4 字符集一个字符占用4个字节,所以 varchar 最大长度是(65535-1)/4=16383 个字符(由于1字节额外占用空间开销,所以减1)。
TEXT :最大限制是64k, 采用 utf-8 字符集,(262144-1)/3=87381 个字符。采用 utf-8mb4字符集,(262144-1)/4=65535 个字符。