常用数据类型
数值类型
分为整型和浮点型:
| 数据类型 | 大小 | 说明 | 对应java类型 |
|---|---|---|---|
| BIT[ (M) ] | M指定位数,默认为 | 二进制数,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 | 和DECIMAL一样 | BigDecimal |
扩展资料
- 数值类型可以指定为无符号(unsigned),表示不取负数。
- 平时提到的浮点数(float、double都是基于IEEE 754标准来进行使用的),这套标准最大的问题就是对于有些数字来说。不能精确的表示一个小数。比如在算钱的领域
- 一般性存钱我们用Decimal或者NUMERIC表示,有时候用int(转化为分)表示。
- 尽量不使用unsigned,对于int类型可能存放不下的数据,int unsigned同样可能存放不下,与其
如此,还不如设计时,将int类型提升为bigint类型
字符串类型
| 数据类型 | 大小 | 说明 | 对应java类型 |
|---|---|---|---|
| VARCHAr(SIZE) | 0-65,535字节 | 可变长度字符串 | String |
| TEXT | 0-65,535字节 | 长文本数据 | String |
| MEDIUMTEXT | 0-16 777 215字节 | 中等长度文本数据 | String |
| BLOB | 0-65,535字节 | 二进制形式的长文本数据 | byte[] |
size数据类型是字符
BLOB 用于表示二进制文件
二进制文件:mp3、jpg文件、.class
文本文件:txt、.java,.c
日期类型
| 数据类型 | 大小 | 说明 | 对应java类型 |
|---|---|---|---|
| DATETIME | 8字节 | 范围从1000到9999年,不会进行时区的检索及转换 | java.util.Date、java.sql.Timestamp |
| TIMESTAMP | 4字节 | 范围从1970到2038年,自动检索当前时区并进行转换 | java.util.Date、java.sql.Timestamp |
时间可以用String来表示吗?
可以,但是会失去对日期的校验功能,判定这个日期是不是合法的
timestamp是啥?答: 时间戳
时间戳概念:1970年1月1日0时0分0秒作为基准时刻,来计算当前时刻和基准时刻的秒数/毫秒之差


![[MYSQL] MySQL数据库基础(二) [MYSQL] MySQL数据库基础(二)](http://www.mshxw.com/aiimages/31/947167.png)
