MySQL中各种字段的取值范围

MySQL中各种字段的取值范围

以下是MySQL中各字段的取值范围:

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-0100:00:00-9999-12-3123:59:59

TIMESTAMP

1970-01-0100:00:00-2037年的某天(具体是哪天我也不知道,呵呵)

TIME

-838:59:59' to838: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个成员