| 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 |