PS:
UNSIGNED  代表是无符号,
例如  INT 或 INTEGER  : -2147483648 - 2147483647 ,
那么INT UNSIGNED 或 INTEGER UNSIGNED :0 - 4294967295 ,也就是只有正的,无负的存在

以下为各个数据类型的取值范围:

TINYINT 
-128 - 127 
TINYINT UNSIGNED 
0 - 255 
SMALLINT 
-32768 - 32767 
SMALLINT UNSIGNED 
0 - 65535 
MEDIUMINT 
-8388608 - 8388607 
MEDIUMINT UNSIGNED 
0 - 16777215 
INT 或 INTEGER 
-2147483648 - 2147483647 
INT UNSIGNED 或 INTEGER UNSIGNED 
0 - 4294967295 
BIGINT 
-9223372036854775808 - 9223372036854775807 
BIGINT UNSIGNED 
0 - 18446744073709551615 
FLOAT 
-3.402823466E+38 - -1.175494351E-38,0,1.175494351E-38 - 3.402823466E+38 
DOUBLE 或 DOUBLE PRECISION 或 REAL 
-1.7976931348623157E+308 - -2.2250738585072014E-308,0,2.2250738585072014E-308 - 1.7976931348623157E+308 
DECIMAL[(M,[D])] 或 NUMERIC(M,D) 
由M(整个数字的长度,包括小数点,小数点左边的位数,小数点右边的位数,但不包括负号)和D(小数点右边的位数)来决定,M缺省为10,D缺省为0 
DATE 
1000-01-01 - 9999-12-31 
DATETIME 
1000-01-01 00:00:00 - 9999-12-31 23:59:59 
TIMESTAMP 
1970-01-01 00:00:00 - 2037年的某天(具体是哪天我也不知道) 
TIME
-838:59:59' to 838:59:59 
YEAR[(2|4)] 
缺省为4位格式,4位格式取值范围为1901 - 2155,0000,2位格式取值范围为70-69(1970-2069) 
CHAR(M) [BINARY] 或 NCHAR(M) [BINARY] 
M的范围为1 - 255,如果没有BINARY项,则不分大小写,NCHAR表示使用缺省的字符集.在数据库中以空格补足,但在取出来时末尾的空格将自动去掉. 
[NATIONAL] VARCHAR(M) [BINARY] 
M的范围为1 - 255.在数据库中末尾的空格将自动去掉. 
TINYBLOB 或 TINYTEXT 
255(2^8-1)个字符 
BLOB 或 TEXT 
65535(2^16-1)个字符 
MEDIUMBLOB 或 MEDIUMTEXT 
16777215 (2^24-1)个字符 
LONGBLOB 或 LONGTEXT 
4294967295 (2^32-1)个字符 
ENUM('value1','value2',...) 
可以总共有65535个不同的值 
SET('value1','value2',...) 
最多有64个成员 

数据库字段的各个类型对应JAVA里的类型:

类型名称

显示长度

数据库类型

JAVA类型

JDBC类型索引(int)

描述

 

 

 

 

 

 

VARCHAR

L+N

VARCHAR

java.lang.String

12

 

CHAR

N

CHAR

java.lang.String

1

 

BLOB

L+N

BLOB

java.lang.byte[]

-4

 

TEXT

65535

VARCHAR

java.lang.String

-1

 

 

 

 

 

 

 

INTEGER

4

INTEGER UNSIGNED

java.lang.Long

4

 

TINYINT

3

TINYINT UNSIGNED

java.lang.Integer

-6

 

SMALLINT

5

SMALLINT UNSIGNED

java.lang.Integer

5

 

MEDIUMINT

8

MEDIUMINT UNSIGNED

java.lang.Integer

4

 

BIT

1

BIT

java.lang.Boolean

-7

 

BIGINT

20

BIGINT UNSIGNED

java.math.BigInteger

-5

 

FLOAT

4+8

FLOAT

java.lang.Float

7

 

DOUBLE

22

DOUBLE

java.lang.Double

8

 

DECIMAL

11

DECIMAL

java.math.BigDecimal

3

 

BOOLEAN

1

同TINYINT

 

 

 

 

 

 

 

 

 

ID

11

PK (INTEGER UNSIGNED)

java.lang.Long

4

 

 

 

 

 

 

 

DATE

10

DATE

java.sql.Date

91

 

TIME

8

TIME

java.sql.Time

92

 

DATETIME

19

DATETIME

java.sql.Timestamp

93

 

TIMESTAMP

19

TIMESTAMP

java.sql.Timestamp

93

 

YEAR

4

YEAR

java.sql.Date

91