MySql 数据类型的取值范围

数据引自:http://dev.mysql.com/doc/refman/5.1/zh/column-types.html

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

 

·TINYINT——这个类型最多可容纳三位数。
·SMALLINT——最多可容纳五位数。
·MEDIUMINT——最多可容纳八位数。
·INT——可以容纳十位数。
·BIGINT——最多可容纳二十位数。

2. 时间和日期类型

列类型

”值

DATETIME

'0000-00-00 00:00:00'

DATE

'0000-00-00'

TIMESTAMP

00000000000000

TIME

'00:00:00'

YEAR

0000

 

3. 字符串类型:

CHAR列的长度固定为创建表时声明的长度。长度可以为从0255的任何值。当保存CHAR值时,在它们的右边填充空格以达到指定的长度。当检索到CHAR值时,尾部的空格被删除掉。

VARCHAR列中的值为可变长字符串。长度可以指定为065,535之间的值。(VARCHAR的最大有效长度由最大行大小和使用的字符集确定。整体最大长度是65,532字节)

下面的表显示了将各种字符串值保存到CHAR(4)VARCHAR(4)列后的结果,说明了CHARVARCHAR之间的差别:

CHAR(4)

存储需求

VARCHAR(4)

存储需求

''

'    '

4个字节

''

1个字节

'ab'

'ab  '

4个字节

'ab '

3个字节

'abcd'

'abcd'

4个字节

'abcd'

5个字节

'abcdefgh'

'abcd'

4个字节

'abcd'

5个字节

4. 数值类型存储需求:

列类型

存储需求

TINYINT

1个字节

SMALLINT

2个字节

MEDIUMINT

3个字节

INTINTEGER

4个字节

BIGINT

8个字节

FLOAT(p)

如果0 <= p <= 244个字节如果25 <= p <= 538个字节

FLOAT

4个字节

DOUBLE [PRECISION], item REAL

8个字节

DECIMAL(M,D)NUMERIC(M,D)

变长;参见下面的讨论

BIT(M)

大约(M+7)/8个字节

 DECIMALNUMERIC类型在MySQL中视为相同的类型。它们用于保存必须为确切精度的值,例如货币数据。当声明该类型的列时,可以(并且通常要)指定精度和标度;例如:

salary DECIMAL(5,2)

5. 日期和时间的存储需求:

列类型

存储需求

DATE

3个字节

DATETIME

8个字节

TIMESTAMP

4个字节

TIME

3个字节

YEAR

1个字节

6. 字符串类型的存储需求:

列类型

存储需求

CHAR(M)

M个字节,<= M <= 255

VARCHAR(M)

L+1个字节,其中L <= <= M <= 65535(参见下面的注释)

BINARY(M)

M个字节,<= M <= 255

VARBINARY(M)

L+1个字节,其中L <= <= M <= 255

TINYBLOBTINYTEXT

L+1个字节,其中L < 28

BLOBTEXT

L+2个字节,其中L < 216

MEDIUMBLOBMEDIUMTEXT

L+3个字节,其中L < 224

LONGBLOBLONGTEXT

L+4个字节,其中L < 232

ENUM('value1','value2',...)

12个字节,取决于枚举值的个数(最多65,535个值)

SET('value1','value2',...)

1234或者8个字节,取决于set成员的数目(最多64个成员)

 

VARCHARBLOBTEXT类是变长类型。每个类型的存储需求取决于列值的实际长度(用前面的表中的L表示),而不是该类型的最大可能的大小。例如,VARCHAR(10)列可以容纳最大长度为10的字符串。实际存储需求是字符串(L)的长度,加上一个记录字符串长度的字节。对于字符串'abcd'L4,存储需要5个字节。

注释:VARCHAR列的有效最大长度为65,532字符。

猜你喜欢

转载自geeksun.iteye.com/blog/1853742