MySQL的数据类型

注意  

选择合适的数据类型,能节省储存空间,提升计算性能。
(1)在符合应用要求(取值范围、精度)的前提下,尽量使用“短”数据类型
(2)数据类型越简单越好。
(3)在MySQL中,应该用内置的日期和时间数据类型,而不是用字符串来存储日期和时间。
(4)尽量采用精确小数类型(例如decimal),而不采用浮点数类型。
(5)尽量避免NULL字段,建议将字段指定为NOT NULL约束。

MySQL数据库只要姓名和年龄2列,但是年龄需要变成出生年份 mysql年龄数据类型_数据库

 

  

  • 数值类型

    整数类型

类型

大小

范围(有符号)

范围(无符号)

用途

TINYINT

1 字节

(-128,127)

(0,255)

小整数值

SMALLINT

2 字节

(-32 768,32 767)

(0,65 535)

大整数值

MEDIUMINT

3 字节

(-8 388 608,8 388 607)

(0,16 777 215)

大整数值

INT或INTEGER

4 字节

(-2 147 483 648,2 147 483 647)

(0,4 294 967 295)

大整数值

BIGINT

8 字节

(-9223372036854775808,9223372036854775 807)

(0,18 446 744 073
709 551 615)

极大整数值

例:定义年龄字段age为无符号数,可以使用      age tinyint unsigned          ,其中用unsigned约束年龄age的取值不能为负数

 

 

    小数类型

类型

大小

范围(有符号)

范围(无符号)

用途

FLOAT

4 字节

-3.402 823 466 E+38
~-1.175 494 351 E-38

0和1.175 494 351 E-38
~3.402 823 466 E+38

单精度
浮点数

DOUBLE

8 字节

-1.797 693 134 862 315 7 E+308
~-2.225 073 858 507 201 4 E-308)

0和2.225 073 858 507 201 4 E-
308~1.797 693 134 862 315 7
E+308

双精度
浮点数

DECIMAL

DECIMAL
(length,
precision)

length决定小数的最大位数
precision用于设置小数位数

length决定小数的最大位数
precision用于设置小数位数

 小数值

备注:decimal(length, precision)用于表示精度确定(小数点后数字的位数确定)的小数类型,length决定该小数的最大位数,precision用于设置精度(小数点后数字的位数)。
例如:decimal (5,2)表示小数取值范围:-999.99~999.99 decimal (5,0)表示: -99999~99999的整数。

 

 

字符串类型

类型

大小

用途

CHAR(n)

0-255字节

定长字符串

VARCHAR(n)

0-65535 字节

变长字符串

TINYTEXT

0-255字节

短文本字符串

TEXT

0-65 535字节

长文本数据

MEDIUMTEXT

0-16 777 215字节

中等长度文本数据

LONGTEXT

0-4 294 967 295字节

极大文本数据

日期/时间类型

类型

大小(字节)

范围

格式

用途

DATE

3

‘1000-01-01’~’9999-12-31’

YYYY-MM-DD

日期值

TIME

3

'-838:59:59‘~'838:59:59'

HH:MM:SS

时间值或持续时间

YEAR

1

‘1901’~’2155’

YYYY

年份值

DATETIME

8

‘1000-01-01 00:00:00’
~’9999-12-31 23:59:59’

YYYY-MM-DD HH:MM:SS

混合日期和时间值

TIMESTAMP

4

‘1970-01-01 00:00:00’~’2038’

YYYY-MM-DD HH:MM:SS

混合日期和时间值,
时间戳

复合类型

类型

最大值

说 明

示例

Enum (“value1”, “value2”, …)

65535

该类型的列只可以容纳所列值之一或为NULL

Gender enum('男','女)

Set (“value1”, “value2”, …)

64

该类型的列可以容纳一组值或为NULL

Interest set('唱歌','游泳','网球’)

二进制类型

类型

大小

用途

Binary(n)

0-255字节

较短的二进制

VARBinary(n)

0-65535 字节

较长的二进制

Bit(n)

0-64字节

短二进制

TINYBLOB

0-255字节

较短的二进制

TINYBLOB

0-255字节

较短的二进制

BLOB

0-65 535字节

图片、声音等文件

MEDIUMBLOB

0-16 777 215字节

图片、声音、视频等文件

LONGBLOB

0-4 294 967 295字节

图片、声音、视频等文件