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个成员