
在 MySQL 中,数据类型是每个列的核心特性之一,决定了该列所能存储的数据类型及数据范围。正确选择数据类型对于优化数据库的存储性能和查询效率至关重要。本文将详细介绍 MySQL 中常见的数据类型,并给出具体的示例。
一、MySQL中的数据类型
MySQL的基础数据类型可以分为几类:数值类型、日期和时间类型、字符串类型、二进制类型等。接下来,我们将详细解释每一类的数据类型以及它们的特点和使用场景。
1. 数值类型
数值类型用于存储数字,可以分为整数类型和浮动类型。
1.1 整数类型
整数类型用于存储没有小数部分的数字。常见的整数类型有:
数据类型 | 有符合数值范围 | 无符号数值范围 | 所占字节(个) | 描述 |
---|---|---|---|---|
TINYINT | -128~127 | 0~255 | 1 | 非常小的整数 |
SMALLINT | -32768~32768 | 0~65535 | 2 | 小范围的整数 |
MEDIUMINT | -8388608~8388608 | 0~16777215 | 3 | 中等范围的整数 |
INT | -2147483648~ 2147483648 | 0~4294967295 | 4 | 标准、常用的整数 |
BIGINT | -9223372036854775808 ~9223372036854775808 | 0~18446744073709551615 | 8 | 非常大的整数 |
1.2 浮动类型
浮动类型用于存储带小数的数字,常见的有:
数据类型 | 有符合数值范围 | 无符号数值范围 | 所占字节(个) | 描述 |
---|---|---|---|---|
float | -3.402823466E+38 ~-1.175494351E-38 | 0和1.175494351E-38~3.402823466E+38 | 4 | 单精度浮动点数,存储较小范围的数字 |
double | -1.7976931348623157E+308 ~2.2250738585072014E-308 | 0和2.2250738585072014E-308~1.7976931348623157E+308 | 8 | 双精度浮动点数,存储较大范围的数字 |
DECIMAL(M,D) | -1.7976931348623157E+308 ~2.2250738585072014E-308 | 0和 2.2250738585072014E-308~1.7976931348623157E+308 | M+2 | 用于存储精确的小数值,适用于财务等精确计算的场景 |
注意:
DECIMAL类型的取值范围与DOUBLE类型相同。但是,请注意:DECIMAL类型的有效取值范围是由M和D决定的。其中,M表示的是数据的长 度,D表示的是小数点后的长度。比如,将数据类型为DECIMAL(6,2)的数据6.5243 插入数据库后显示的结果为6.52。
示例:
CREATE TABLE products (
id INT AUTO_INCREMENT PRIMAR