MySQL的数据类型

一、MySQL的数据类型

主要包括以下五大类:

整数类型:BIT、BOOL、TINY INT、SMALL INT、MEDIUM INT、 INT、 BIG INT

浮点数类型:FLOAT、DOUBLE、DECIMAL

字符串类型:CHAR、VARCHAR、TINY TEXT、TEXT、MEDIUM TEXT、LONGTEXT、TINY BLOB、BLOB、MEDIUM BLOB、LONG BLOB

日期类型:Date、DateTime、TimeStamp、Time、Year

其他数据类型:BINARY、VARBINARY、ENUM、SET、Geometry、Point、MultiPoint、LineString、MultiLineString、Polygon、GeometryCollection等

二、MYSQL数据类型的长度和范围

各数据类型及字节长度一览表:

数据类型

字节长度

范围或用法

Bit

1

无符号[0,255],有符号[-128,127],天缘博客备注:BIT和BOOL布尔型都占用1字节

TinyInt

1

整数[0,255]

SmallInt

2

无符号[0,65535],有符号[-32768,32767]

MediumInt

3

无符号[0,2^24-1],有符号[-2^23,2^23-1]]

Int

4

无符号[0,2^32-1],有符号[-2^31,2^31-1]

BigInt

8

无符号[0,2^64-1],有符号[-2^63  ,2^63 -1]

Float(M,D)

4

单精度浮点数。天缘博客提醒这里的D是精度,如果D<=24则为默认的FLOAT,如果D>24则会自动被转换为DOUBLE型。

Double(M,D)

8

双精度浮点。

Decimal(M,D)

M+1或M+2

未打包的浮点数,用法类似于FLOAT和DOUBLE,天缘博客提醒您如果在ASP中使用到Decimal数据类型,直接从数据库读出来的Decimal可能需要先转换成Float或Double类型后再进行运算。

Date

3

以YYYY-MM-DD的格式显示,比如:2009-07-19

Date  Time

8

以YYYY-MM-DD  HH:MM:SS的格式显示,比如:2009-07-19 11:22:30

TimeStamp

4

以YYYY-MM-DD的格式显示,比如:2009-07-19

Time

3

以HH:MM:SS的格式显示。比如:11:22:30

Year

1

以YYYY的格式显示。比如:2009

Char(M)

M

定长字符串。

VarChar(M)

M

变长字符串,要求M<=255

Binary(M)

M

类似Char的二进制存储,特点是插入定长不足补0

VarBinary(M)

M

类似VarChar的变长二进制存储,特点是定长不补0

Tiny  Text

Max:255

大小写不敏感

Text

Max:64K

大小写不敏感

Medium  Text

Max:16M

大小写不敏感

Long  Text

Max:4G

大小写不敏感

TinyBlob

Max:255

大小写敏感

Blob

Max:64K

大小写敏感

MediumBlob

Max:16M

大小写敏感

LongBlob

Max:4G

大小写敏感

Enum

1或2

最大可达65535个不同的枚举值

Set

可达8

最大可达64个不同的值

Geometry

 

 

Point

 

 

LineString

 

 

Polygon

 

 

MultiPoint

 

 

MultiLineString

 

 

MultiPolygon

 

 

GeometryCollection

 

 

三、使用建议

1、在指定数据类型的时候一般是采用从小原则,比如能用TINY INT的最好就不用INT,能用FLOAT类型的就不用DOUBLE类型,这样会对MYSQL在运行效率上提高很大,尤其是大数据量测试条件下。

2、不需要把数据表设计的太过复杂,功能模块上区分或许对于后期的维护更为方便,慎重出现大杂烩数据表

3、数据表和字段的起名字也是一门学问

4、设计数据表结构之前请先想象一下是你的房间,或许结果会更加合理、高效

5、数据库的最后设计结果一定是效率和可扩展性的折中,偏向任何一方都是欠妥的

你可能感兴趣的:(MySQL的数据类型)