优秀的编程知识分享平台

网站首页 > 技术文章 正文

1、数值类型

nanyue 2025-05-27 16:42:11 技术文章 5 ℃

1.1 数据类型概览

MySQL 的数据类型可划分为三大类别:

  • 数值类型:旨在存储数字(涵盖整型、浮点型、DECIMAL 等)。
  • 字符串类型:主要用于存储文本(诸如 CHAR、VARCHAR 之类)。
  • 日期/时间类型:用于留存日期和时间(例如 DATE、TIME 等)。

1.2 数值类型详析

1.2.1 整型

数据类型

所占字节

带符号取值范围

无符号取值范围

TINYINT

1

-128 至 127

0 至 255

SMALLINT

2

-32,768 至 32,767

0 至 65,535

MEDIUMINT

3

-8,388,608 至 8,388,607

0 至 16,777,215

INT

4

-2,147,483,648 至 2,147,483,647

0 至 4,294,967,295

BIGINT

8

-9,223,372,036,854,775,808 至 9,223,372,036,854,775,807

0 至 18,446,744,073,709,551,615


说明

  • 整型默认许可负数(呈带符号之态),借由 UNSIGNED 属性能够加以限制,使之成为非负数。
  • 显示宽度(诸如 INT(5) )仅仅对输出格式产生影响,而并不制约实际的存储范围。

1.2.2 浮点型

数据类型

所占字节

带符号取值范围

无符号取值范围

FLOAT

4

-3.402823466E+38 至 1.175494351E-38

1.175494351E-38 至 3.402823466E+38

DOUBLE

8

-1.7976931348623157E+308 至 2.2250738585072014E-308

2.2250738585072014E-308 至 1.7976931348623157E+308


特点

  • 浮点数或许存有精度损失(例如 0.1 + 0.2 或许并不等同于 0.3 )。
  • 建议针对货币等需要精确计算的情形使用 DECIMAL 。

1.2.3 精确数型(DECIMAL)

  1. 语法:DECIMAL(M, D)
  • M:总位数(涵盖小数点前后,不含负号)。
  • D:小数点后的位数。
  • 默认值:M若缺失则默认为 10,D若缺失则默认为 0。
  1. 示例
  • DECIMAL(5,2):最大值为999.99,最小值为-999.99。
  • DECIMAL(10):等同于DECIMAL(10,0),用于存储整数。

1.3 整数类型的扩展属性

1.3.1 UNSIGNED(无符号)

  • 作用:对数值加以限制,使其为非负数[^1.9^]。
  • 示例
CREATE TABLE test (
    id INT UNSIGNED -- 取值范围:0 至 4,294,967,295
);

1.3.2 ZEROFILL(零填充)

  • 作用:以前置零补足不足的位数,并自动启用 UNSIGNED1 。
  • 示例
CREATE TABLE test (
    num INT(3) ZEROFILL -- 存入 5,显示为"005"
);

1.3.3 显示宽度

  1. 语法:INT(N),其中 N 为显示宽度(1 至 255)。
  2. 注意
  • 显示宽度仅对输出格式产生影响,并不限制实际的存储值。
  • 例如:INT(3)能够存储 12345,但在查询时可能会显示为 12345(超出设定宽度)。

1.4 浮点类型的显示控制

  1. 语法: FLOAT(M, D) / DOUBLE(M, D)1
  • M:总的显示宽度(涵盖小数点)。
  • D:小数点后的位数。
  1. 示例:
CREATE TABLE test (
    price FLOAT(7, 2) 
); -- 最大显示 7 位,如 1234.56 会进行四舍五入为 1234.56
  • 注意: 实际的存储精度依旧由 FLOAT/DOUBLE 予以决定,而显示宽度仅仅对输出产生影响。
最近发表
标签列表