Java类 | MySQL | Oracle | 字节 | 范围 |
Character | char(1) | char(1) | 2 | 0~65535 |
String | varchar(255) | varchar2(255) | ||
String-clob | longtext | clob | ||
Date-date | date | date | ||
Date-time | time | date | ||
Date-timestamp | datetime | date | ||
Boolen | tinyint(1) | number(1) | 1 | true|false |
Byte | tinyint(4) | number(3) | 1 | -128~127 |
Short | smallint(6) | number(5) | 2 | -32768~32767 |
Integer | int(11) | number(10) | 4 | -2147483648~2147483647 |
Long | bigint(20) | number(19) | 8 | -9223372036854775808 ~ 9223372036854775807 |
Float | float | float | 4 | -3.4E38~3.4E38 |
Double | double | float | 8 | -1.7E308~1.7E308 |
BigDecimal | decimal(19,2) | number(19,2) | ||
byte[]-blob | longblob | clob |
Float, Double尽量用BigDecimal替代,避免引起精度问题
Boolean在数据库中有很多种表示方式,如0|1, Y|N, YES|NO, 甚至用是|否表示 ,所以可以用number(1), char(1)甚至varchar2表示
为什么MySQL和Oracle相差1,看了下面了你应该知道:
类型 | 字节 | 最小值 | 最大值 |
|
| (带符号的/无符号的) | (带符号的/无符号的) |
TINYINT | 1 | -128 | 127 |
|
| 0 | 255 |
SMALLINT | 2 | -32768 | 32767 |
|
| 0 | 65535 |
MEDIUMINT | 3 | -8388608 | 8388607 |
|
| 0 | 16777215 |
INT | 4 | -2147483648 | 2147483647 |
|
| 0 | 4294967295 |
BIGINT | 8 | -9223372036854775808 | 9223372036854775807 |
|
| 0 | 18446744073709551615 |