写在最前面的话
哈喽,大家好,上篇文章讲解的是针对数据库的基本操作,那么接下来我们就需要开始学习针对数据库的表数据操作了,不过在学习表数据操作前,我们需要先认识都有哪些数据类型,因此本篇文章讲解的是Sql的常用数据类型,让我们一起进入学习吧,希望能给你们带来帮助,感谢大家的支持!喜欢的话可以三连哦~~~
一、数值类型
分为整型和浮点型
数据类型 | 大小 | 说明 | 对应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指定长度,D表示小数点位数,精确数值 | BigDecimal |
NUMERIC(M,D) | M/D最大值+2 | 双精度,M指定长度,D表示小数点位数,精确数值 | BigDecimal |
拓展说明:
- 数值类型可以指定为无符号(unsigned),表示不取负数。
- 1字节(bytes)= 8bit。
- 对于整型类型的范围:
1. 有符号范围:-2^(类型字节数*8-1)到2^(类型字节数*8-1)-1,如int是4字节,就
是-2^31到2^31-1
2. 无符号范围:0到2^(类型字节数*8)-1,如int就是2^32-1
二、字符串类型
数据类型 | 大小 | 说明 | 对应java类型 |
VARCHAR (SIZE) | 0-65,535字节 | 可变长度字符串 | String |
TEXT | 0-65,535字节 | 长文本数据 | String |
MEDIUMTEXT | 0-16 777 215字节 | 中等长度文本数据 | String |
BLOB | 0-65,535字节 | 二进制形式的长文本数据 | Byte[] |
拓展说明:
- 一个汉字算是一个字符,但可能是对应多个字节。
- VARCHAR (SIZE)的SIZE表示该类型最多存储几个字符(不是字节):当你写了size为10,并不是立刻分配10个字符的存储空间,而是会分配一个较小的空间,如果不够自动扩展,最大不超过10
- TEXT、MEDIUMTEXT不能手动设置空间最大值。
- BLOB存储二进制的数据,在对应的码表上查不到的都是二进制数据,如音乐、图片、视频等都属于二进制数据。
三、日期类型
数据类型 | 大小 | 说明 | 对应的java类型 |
DATETIME | 8字节 | 范围从1000到9999年,不会进行时区的 检索及转换。 | java.util.Date、 java.sql.Timestamp |
TIMESTAMP | 4字节 | 范围从1970到2038年,自动检索当前时 区并进行转换。 | java.util.Date、 java.sql.Timestamp |
拓展说明:
- datetime : 时间日期型,格式是YYYY-mm-dd HH:ii:ss,表示的范围是从1000到9999,但是有零值,0000-00-00 00:00:00。
- timestamp:时间戳,并不是常规意义时间戳(如:14253685),范围是’1970-01-01 00:00:00’到2037年。格式为YYYY-mm-dd HH:ii:ss,与datetime完全一致。