首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > Mysql >

MySql 数据类型的取值范畴

2013-07-04 
MySql 数据类型的取值范围数据引自:http://dev.mysql.com/doc/refman/5.1/zh/column-types.html1. 数值类

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

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

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

?

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个字节

INT,?INTEGER

4个字节

BIGINT

8个字节

FLOAT(p)

如果0 <=?p?<= 24为4个字节,?如果25 <=?p?<= 53为8个字节

FLOAT

4个字节

DOUBLE [PRECISION], item?REAL

8个字节

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

变长;参见下面的讨论

BIT(M)

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

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

salary DECIMAL(5,2)

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

?

列类型

存储需求

DATE

3个字节

DATETIME

8个字节

TIMESTAMP

4个字节

TIME

3个字节

YEAR

1个字节

?

?

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

?

列类型

存储需求

CHAR(M)

M个字节,0?<=?M?<=?255

VARCHAR(M)

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

BINARY(M)

M个字节,0?<=?M?<=?255

VARBINARY(M)

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

TINYBLOB,?TINYTEXT

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

BLOB,?TEXT

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

MEDIUMBLOB,?MEDIUMTEXT

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

LONGBLOB,?LONGTEXT

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

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

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

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

1、2、3、4或者8个字节,取决于set成员的数目(最多64个成员)

?

?

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

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

?

?

?

?

?

?

?

?

热点排行