mysql 字段有效值_MySQL为字段选择合适数据类型

在使用MySQL创建数据表时,经常会遇到如何为字段选择合适的数据类型的问题,接下来我们一起分析字符串、数值、日期数据类型的选择。

1、CHAR与VARCHAR

CHAR和VARCHAR类型,都用来存储字符串,但它们被存储和检索的方式不同。它们的最大长度以及是否保留尾部空格也不同。CHAR属于固定长度的字符类型,而VARCHAR属于可变长度的字符类型。

下表将各种字符串值存储到CHAR(4)和VARCHAR(4)列后的结果,从而说明了CHAR和VARCHAR之间的区别。并且在查询数据时CHAR列会删除尾部的空格。

8c27c6bebb9a2ed6313664da7f632165.png

CHAR与VARCHAR

建议:

在存储定长字符时推荐使用CHAR,在存储列是不定长时字符推荐使用合适长的VARCHAR。

在使用CHAR和VARCHAR时,后面跟的数字为满足需要的最小值。

2、BLOB和TEXT类型

BLOB是一个二进制大对象,TEXT是一个的文本大对象。BLOB和TEXT分别包括TINYBLOB,BLOB,MEDIUMBLOB,LONGBLOB和TINYTEXT,TEXT,MEDIUMTEXT,LONGTEXT四种不同的类型。它们之间的区别主要是存储文本长度和存储字节个数的不同。

建议:

对于存在TEXT或BLOB列的表,查询数据是应避免查询这些字段。

如果可以的话应该把BLOB或TEXT列分离到单独的表中,以提升数据处理性能。

3、定点类型与浮点类型

定点类型,DECIMAL类型的存储精确的数值数据。当对精确度要求很高时,例如金额数据,应使用定点类型。MySQLDECIMAL以二进制格式存储值。

浮点类型,FLOAT和DOUBLE类型代表近似值数据。FLOAT单精度需要四个字节存储,DOUBLE双精度需要八个字节存储。

4、日期和时间数据类型

MySQL提供常用的日期和时间数据类型有DATE,TIME,DATETIME,TIMESTAMP,和YEAR。每个时间类型都有一个有效值范围,以及一个“零”值。

从下表可以看出每种类型的“零”值的格式。

ea29c178122e7493488f728fa5ec359b.png

“零”值的格式

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值