MySQL中各种字段的取值范围多少?

MySQL中各种字段的取值范围多少?

MySQL中各种字段的取值范围
本文出自: 作者: (2001-07-05 17:04:01)


TINYINT
-128-127
TINYINTUNSIGNED
0-255
SMALLINT
-32768-32767
SMALLINTUNSIGNED
0-65535
MEDIUMINT
-8388608-8388607
MEDIUMINTUNSIGNED
0-16777215
INT或INTEGER
-2147483648-2147483647
INTUNSIGNED或INTEGERUNSIGNED
0-4294967295
BIGINT
-9223372036854775808-9223372036854775807
BIGINTUNSIGNED
0-18446744073709551615
FLOAT
-3.402823466E+38--1.175494351E-38
0
1.175494351E-38-3.402823466E+38
DOUBLE或DOUBLEPRECISION或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个成员
Mysql数学函数不求人
本文出自:http://linuxdb.yeah.net 作者: 晏子 (2001-07-05 16:10:00)

所有的数学函数在一个出错的情况下返回NULL。

-
单目减。改变参数的符号。
mysql>select-2;

注意,如果这个操作符与一个BIGINT使用,返回值是一个BIGINT!这意味着你应该避免在整数上使用-,那可能有值-2^63!
ABS(X)
返回X的绝对值。
mysql>selectABS(2);
->2
mysql>selectABS(-32);
->32

该功能可安全用于BIGINT值。

SIGN(X)
返回参数的符号,为-1、0或1,取决于X是否是负数、零或正数。
mysql>selectSIGN(-32);
->-1
mysql>selectSIGN(0);
->0
mysql>selectSIGN(234);
->1

MOD(N,M)

%
模(类似C中的%操作符)。返回N被M除的余数。
mysql>selectMOD(234,10);
->4
mysql>select253%7;
->1
mysql>selectMOD(29,9);
->2

这个函数可安全用于BIGINT值。
FLOOR(X)
返回不大于X的最大整数值。

mysql>selectFLOOR(1.23);
->1
mysql>selectFLOOR(-1.23);
->-2

注意返回值被变换为一个BIGINT!
CEILING(X)
返回不小于X的最小整数值。
mysql>selectCEILING(1.23);
->2
mysql>selectCEILING(-1.23);
->-1

注意返回值被变换为一个BIGINT!

ROUND(X)
返回参数X的四舍五入的一个整数。
mysql>selectROUND(-1.23);
->-1
mysql>selectROUND(-1.58);
->-2
mysql>selectROUND(1.58);
->2

注意返回值被变换为一个BIGINT!

ROUND(X,D)
返回参数X的四舍五入的有D为小数的一个数字。如果D为0,结果将没有小数点或小数部分。
mysql>selectROUND(1.298,1);
->1.3
mysql>selectROUND(1.298,0);
->1

注意返回值被变换为一个BIGINT!

EXP(X)
返回值e(自然对数的底)的X次方。
mysql>selectEXP(2);
->7.389056
mysql>selectEXP(-2);
->0.135335

LOG(X)
返回X的自然对数。
mysql>selectLOG(2);
->0.693147
mysql>selectLOG(-2);
->NULL

如果你想要一个数字X的任意底B的对数,使用公式LOG(X)/LOG(B)。

LOG10(X)
返回X的以10为底的对数。
mysql>selectLOG10(2);
->0.301030
mysql>selectLOG10(100);
->2.000000
mysql>selectLOG10(-100);
->NULL

POW(X,Y)

POWER(X,Y)
返回值X的Y次幂。
mysql>selectPOW(2,2);
->4.000000
mysql>selectPOW(2,-2);
->0.250000
SQRT(X)
返回非负数X的平方根。
mysql>selectSQRT(4);
->2.000000
mysql>selectSQRT(20);
->4.472136

PI()
返回PI的值(圆周率)。
mysql>selectPI();
->3.141593

COS(X)
返回X的余弦,在这里X以弧度给出。
mysql>selectCOS(PI());
->-1.000000

SIN(X)
返回X的正弦值,在此X以弧度给出。
mysql>selectSIN(PI());
->0.000000

TAN(X)
返回X的正切值,在此X以弧度给出。
mysql>selectTAN(PI()+1);
->1.557408

ACOS(X)
返回X反余弦,即其余弦值是X。如果X不在-1到1的范围,返回NULL。
mysql>selectACOS(1);
->0.000000
mysql>selectACOS(1.0001);
->NULL
mysql>selectACOS(0);
->1.570796

ASIN(X)
返回X反正弦值,即其正弦值是X。L如果X不在-1到1的范围,返回NULL。
mysql>selectASIN(0.2);
->0.201358
mysql>selectASIN('foo');
->0.000000