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 | |
float(M,D) | 4字节 | 单精度,M指定长度,D指定小数位数。会发生精度丢失 | float |
double(M,D) | 8字节 | double | |
decimal(M,D) | M/D最大值+2 | 双精度,M指定1长度,D表示小数点位数。精确数值 | bigdecimal |
numeric(M,D) | M/D最大值+2 | 和decimal一样 | bigdecimal |
1.bool=tinyint(1)
2.bigint常用在编号字段
3.float和double类型,在表示小数的时候都不是特别精准,所以用decimal类型去表示小数
4.decimal和numeric的M中不计算小数和负数,D为0则保存一个整数,M最大为65,D最大为30,如果省略D,默认为0,如果省略M,则默认为10
2.字符串类型
数据类型 | 大小 | 说明 | 对应的java类型 |
varchar(size) | 0-65535字节 | 可变长字符串 | String |
text | 0-65535字节 | 长文本数据 | String |
mediumtext | 0-16777215字节 | 中等长度文本数据 | String |
blob | 0-65535字节 | 二进制形式的长文本数据 | byte[] |
1.varchar(size)是最常用的一种字符串类型,size指的是字符串的长度,不是字节的大小
例如:类型为varchar(10)的字段,可以存放10个和10以内的字符,超过10个字符就报错
2.text和mediumtext为文本数据类型
3.blob存的是byte数组,也就是一个文件的二进制
4.在utf8mb4编码集,一个符最多占4个字符,根据字符的具体情况用1-4个字节表示一个字符
在utf8mb4编码集的情况下,一个varchar字段最多可以存放65535/4=16383个字符
3.日期类型
数据类型 | 大小 | 说明 | 对应java类型 |
datetime | 8字节 | 范围从1000到9999年,不会进行时区的检索及转换。 | java.utilDate java.sql.Timestamp |
timesramp | 4字节 | 范围从1970年到2038年,自动检索当前时区并进行转换。 | java.util.Date java.sql.Timestamp |