在使用MySQL创建数据表时,经常会遇到如何为字段选择合适的数据类型的问题,接下来我们一起分析字符串、数值、日期数据类型的选择。
1、CHAR与VARCHAR
CHAR和VARCHAR类型,都用来存储字符串,但它们被存储和检索的方式不同。它们的最大长度以及是否保留尾部空格也不同。CHAR属于固定长度的字符类型,而VARCHAR属于可变长度的字符类型。
下表将各种字符串值存储到 CHAR(4)和VARCHAR(4) 列后的结果,从而说明了CHAR和VARCHAR之间的区别。并且在查询数据时CHAR列会删除尾部的空格。
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类型的存储精确的数值数据。当对精确度要求很高时,例如金额数据,应使用定点类型。MySQL DECIMAL以二进制格式存储值。
浮点类型,FLOAT和DOUBLE类型代表近似值数据。FLOAT单精度需要四个字节存储,DOUBLE双精度需要八个字节存储。
4、日期和时间数据类型
MySQL提供常用的日期和时间数据类型有 DATE, TIME, DATETIME, TIMESTAMP,和 YEAR。每个时间类型都有一个有效值范围,以及一个“ 零 ”值。
从下表可以看出每种类型的“ 零 ”值的格式。
“零”值的格式
-
字符串
+关注
关注
1文章
587浏览量
20665 -
MySQL
+关注
关注
1文章
835浏览量
26865
发布评论请先 登录
相关推荐
数据库数据恢复——MySQL数据库误删除表记录的数据恢复案例

如何根据电路需求选择合适村田电感型号?
如何选择合适的PLD型号
如何选择合适的量水堰计型号与规格

适用于MySQL的ODBC驱动程序:可与多个第三方工具兼容的数据连接器
MySQL数据库的安装

请问ADS1299使用Test Signals ,获取到的数据类型是什么?
选择数据采集器时需要考虑的因素
西门子博途新数据类型之:SINT(8位整数)

AIC23采集到的数据是应该用什么数据类型来接收?int还是unsigned int?
labview数据类型的取值范围是多少
常见的遥感数据类型有哪些
技术干货驿站 ▏深入理解C语言:基本数据类型和变量

ESP32-S3是否支持修改控制端点数据类型?
C语言数据类型有哪些

评论