一 数据类型分类
通常,我们会将 MySQL 的数据类型分为四类,即字符串、日期 / 时间、数值、二进制。显然,根据这些分类的名称可以知道
- 字符串类型:以 char、varchar、text 为代表,用于存储字符、字符串数据
- 日期 / 时间类型:以 date、time、datetime、timestamp 为代表,用于存储日期或时间,这种数据类型也是比较难抉择的
- 数值类型:以 tinyint、int、bigint、float、double、decimal 为代表,用于存储整数或小数
- 二进制类型:以 tityblob、blob、mediumblob、longblob 为代表,用于存储二进制数据,适用场景最为受限
对数据类型的分类并不是绝对的,这取决于对存储数据的限制程度。例如对于数值类型又可以再去细分为整数型(int、bigint 等)、浮点型(float、double 等)、定点型(decimal 等)。所以,并不需要把过多的精力花在类型分类上,更多的是应该搞清楚这些类型怎么用,又为什么这样用。
NOTE: liniux服务商查看数据类型的解释可以使用 help命令 such:help tinyint;
二 常用数据类型解读
1. 字符串类型
-
char: char 数据类型用于定义一个固定长度的字符串,长度范围处于 1 ~ 255 bytes之间,
对于长度不固定的数据列,使用 varchar 就是最合适的。例如:姓名、邮箱地址等等。 -
varchar: 可变长度的字符串, 0-65535 bytes
-
tinytext、text、mediumtext、longtext
它们都属于变长字符串,最大的区别是存储空间的不同
tinytext:最大长度是(2^8 - 1)个字符
text:最大长度是(2^16 - 1)个字符
mediumtext:最大长度是(2^24 - 1)个字符
longtext:最大长度是(2^32 - 1)个字符
2 日期 / 时间类型
- datetime 取值范围是 ‘1000-01-0100:00:00.000000’ 到 ‘9999-12-31 23:59:59.999999’。它是最常见,用途最广的数据类型。例如:存储数据插入时间、订单完成时间等等。
3 数值类型
3.1 整数类型
主要支持 5 个整数类型:tinyint、smallint、mediumint、int、bigint。这些数据类型我们基本上认为它们有共同的特性,不同之处只在于存储空间,即存储数值的取值范围。
3.2 浮点类型
float、double、decimal
- decimal 被称为定点数据类型,由于它保存的是精确值,所以它通常用于精度要求非常高的计算中,另外MySQL 自身实现了对 decimal 的高精度计算。底层存储方面,MySQL 将 decimal 类型的数字使用二进制字符串存储,每 4 个字节可以存储 9 个数字
4 二进制类型
- tityblob:最大支持 255 字节
- blob:最大支持 64KB
- mediumblob:最大支持 16MB
- longblob:最大支持 4GB
网友评论