MYSQL之列数据类型

三、MYSQL数据类型
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

    
    FLOAT类型用于表示近似数值数据类型。SQL标准允许在关键字 FLOAT后面的括号内选择用位指定精度(但不能为指数范围)。MySQL还支持可 选的只用于确定存储大小的精度规定。0到23的精度对应 FLOAT 列的4字节单精度。24到53的精度对应 DOUBLE 列的8字节双精度。
    MySQL 允许使用非标准语法: FLOAT(M,D) REAL(M,D) DOUBLE PRECISION(M,D) 。这里,“ (M,D) ”表示该值一共显示 M 位整数,其中 D 位位于小数点后面。
2、日期和时间数据类型

列类型

”值

DATETIME

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

DATE

'0000-00-00'

TIMESTAMP

00000000000000

TIME

'00:00:00'

YEAR

0000

3、字符类型

CHARVARCHAR类型声明的长度表示你想要保存的最大字符数。例如,CHAR(30)可以占用30个字符。

CHAR列的长度固定为创建表时声明的长度。长度可以为从0到255的任何值。

VARCHAR列中的值为可变长字符串。长度可以指定为0到65,535之间的值。

CHAR(4)

存储需求

VARCHAR(4)

存储需求

''

'    '

4个字节

''

1个字节

'ab'

'ab  '

4个字节

'ab '

3个字节

'abcd'

'abcd'

4个字节

'abcd'

5个字节

'abcdefgh'

'abcd'

4个字节

'abcd'

5个字节

BINARYVARBINARY类类似于 CHARVARCHAR,不同的是它们包含二进制字符串而不要非二进制字符串。

BINARYVARBINARY允许的最大长度一样,如同CHARVARCHAR,不同的是BINARYVARBINARY的长度是字节长度而不是字符长度。

BLOB是一个二进制大对象,可以容纳可变数量的数据。有4种BLOB类型:TINYBLOB、BLOB、MEDIUMBLOBLONGBLOB。它们只是可容纳值的最大长度不同。

有4种TEXT类型:TINYTEXT、TEXT、MEDIUMTEXTLONGTEXT。这些对应4种BLOB类型,有相同的最大长度和存储需求。

TEXTBLOB列的存储或检索过程中,不存在大小写转换。

ENUM是一个字符串对象,其值来自表创建时在列规定中显式枚举的一列值。

索引

NULL

NULL

''

0

'one'

1

'two'

2

'three'

3

SET是一个字符串对象,可以有零或多个值,其值来自表创建时规定的允许的一列值。指定包括多个SET成员的SET列值时各成员之间用逗号(‘,’)间隔开。这样SET成员值本身不能包含逗号。

SET成员

十进制值

二进制值

'a'

1

0001

'b'

2

0010

'c'

4

0100

'd'

8

1000

字符类型的存储需求

列类型

存储需求

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

你可能感兴趣的:(sql,sql,sql,Date,mysql,mysql,Date,mysql,Date,mysql,mysql,存储,float)