网站首页 > 技术文章 正文
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)
- 语法:DECIMAL(M, D)
- M:总位数(涵盖小数点前后,不含负号)。
- D:小数点后的位数。
- 默认值:M若缺失则默认为 10,D若缺失则默认为 0。
- 示例:
- 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 显示宽度
- 语法:INT(N),其中 N 为显示宽度(1 至 255)。
- 注意:
- 显示宽度仅对输出格式产生影响,并不限制实际的存储值。
- 例如:INT(3)能够存储 12345,但在查询时可能会显示为 12345(超出设定宽度)。
1.4 浮点类型的显示控制
- 语法: FLOAT(M, D) / DOUBLE(M, D)1
- M:总的显示宽度(涵盖小数点)。
- D:小数点后的位数。
- 示例:
CREATE TABLE test (
price FLOAT(7, 2)
); -- 最大显示 7 位,如 1234.56 会进行四舍五入为 1234.56
- 注意: 实际的存储精度依旧由 FLOAT/DOUBLE 予以决定,而显示宽度仅仅对输出产生影响。
猜你喜欢
- 2025-05-27 Python进阶 - day1:深入理解数据结构
- 2025-05-27 Java中transient字段的作用
- 2025-05-27 深度学习数据集处理常用函数示例(Python)
- 2025-05-27 Go语言-指针
- 2025-05-27 什么是 happens-before 规则?
- 2025-05-27 「Java」一张图教会你关于null的几种处理方式(内附代码)
- 2025-05-27 Python 中常用的数据结构,帮助你从基础到精通
- 2025-05-27 基础函数20例,案例解读,再不掌握就真的Out了
- 2025-05-27 12 个 C# 提效实用干货
- 2025-05-27 Java中数组的声明和初始化方法
- 05-27Python进阶 - day1:深入理解数据结构
- 05-27Java中transient字段的作用
- 05-27深度学习数据集处理常用函数示例(Python)
- 05-27Go语言-指针
- 05-27什么是 happens-before 规则?
- 05-27「Java」一张图教会你关于null的几种处理方式(内附代码)
- 05-27Python 中常用的数据结构,帮助你从基础到精通
- 05-271、数值类型
- 最近发表
- 标签列表
-
- cmd/c (64)
- c++中::是什么意思 (83)
- 标签用于 (65)
- 主键只能有一个吗 (66)
- c#console.writeline不显示 (75)
- pythoncase语句 (81)
- es6includes (73)
- sqlset (64)
- windowsscripthost (67)
- apt-getinstall-y (86)
- node_modules怎么生成 (76)
- chromepost (65)
- c++int转char (75)
- static函数和普通函数 (76)
- el-date-picker开始日期早于结束日期 (70)
- localstorage.removeitem (74)
- vector线程安全吗 (70)
- & (66)
- java (73)
- js数组插入 (83)
- linux删除一个文件夹 (65)
- mac安装java (72)
- eacces (67)
- 查看mysql是否启动 (70)
- 无效的列索引 (74)