当前位置: 首页 > ai >正文

MySQL(48) 什么是ZEROFILL属性?

ZEROFILL 是 MySQL 数值数据类型的一种属性,用于在存储和显示数值时在左侧填充零,以达到指定的显示宽度。它通常与整数类型(如 INTBIGINTSMALLINT 等)和浮点类型(如 FLOATDOUBLE)一起使用。

1. 定义与用途

  • 定义ZEROFILL 属性用于指定数值列在查询结果中的显示格式,通过在左侧填充零来达到指定的显示宽度。
  • 用途:主要用于需要固定宽度显示数值的场景,如生成带有固定格式的编号、账户号码等。

2. 关键点

  • 显示宽度ZEROFILL 属性与显示宽度(display width)结合使用。显示宽度指定的是显示数值时的最小字符数。
  • 自动无符号(UNSIGNED):使用 ZEROFILL 属性的列会自动变为无符号(即 UNSIGNED),因此不能存储负数。

3. 示例代码

以下是一些示例代码,展示了如何使用 ZEROFILL 属性创建表,并插入和检索数据。

创建表

创建一个带有 ZEROFILL 属性的表:

CREATE DATABASE test_zerofill_db;
USE test_zerofill_db;CREATE TABLE accounts (account_id INT(8) ZEROFILL NOT NULL AUTO_INCREMENT PRIMARY KEY,balance DECIMAL(10,2) ZEROFILL NOT NULL
);

在上述示例中:

  • account_id 是一个带有 ZEROFILL 属性的整数列,显示宽度为8。
  • balance 是一个带有 ZEROFILL 属性的十进制列,显示宽度为10(包括小数点和两位小数)。
插入数据
-- 插入数据
INSERT INTO accounts (balance) VALUES 
(1234.56),
(78.90),
(0.00);
检索数据
-- 检索数据
SELECT account_id, balance FROM accounts;
检索结果
+------------+-------------+
| account_id | balance     |
+------------+-------------+
| 00000001   | 0001234.56  |
| 00000002   | 0000078.90  |
| 00000003   | 0000000.00  |
+------------+-------------+

4. 更复杂的示例:订单管理系统

以下是一个更复杂的示例,展示了如何在订单管理系统中使用 ZEROFILL

创建订单表
CREATE TABLE orders (order_id INT(10) ZEROFILL NOT NULL AUTO_INCREMENT PRIMARY KEY,customer_id INT NOT NULL,order_total DECIMAL(12,2) ZEROFILL NOT NULL,order_date TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
插入订单数据
-- 插入订单数据
INSERT INTO orders (customer_id, order_total) VALUES 
(1, 12345.67),
(2, 890.12),
(3, 45.00);
检索订单数据
-- 检索订单数据
SELECT order_id, customer_id, order_total, order_date FROM orders;
检索结果
+----------------+-------------+-------------+---------------------+
| order_id       | customer_id | order_total | order_date          |
+----------------+-------------+-------------+---------------------+
| 0000000001     |           1 | 000012345.67| 2023-10-05 15:30:00 |
| 0000000002     |           2 | 000000890.12| 2023-10-05 16:00:00 |
| 0000000003     |           3 | 000000045.00| 2023-10-05 16:15:00 |
+----------------+-------------+-------------+---------------------+

5. 注意事项

  • 存储效率ZEROFILL 仅影响数据的显示格式,而不影响数据的实际存储。使用 ZEROFILL 的列在存储时不会额外占用空间。
  • 自动无符号:带有 ZEROFILL 属性的列会自动变为无符号(UNSIGNED),因此不能存储负数。如果需要存储负数,不应该使用 ZEROFILL
  • 显示宽度:显示宽度仅用于显示目的,不影响数据的实际存储和处理。

小结

  • ZEROFILL 属性:用于在显示数值时在左侧填充零,以达到指定的显示宽度,常用于需要固定宽度显示数值的场景。
  • 自动无符号:使用 ZEROFILL 属性的列会自动变为无符号(UNSIGNED),不能存储负数。

通过理解 ZEROFILL 属性的用途和特点,可以更好地设计和优化数据库表,确保数据的显示格式符合业务需求。上述示例展示了如何在实际应用中使用 ZEROFILL 属性设计数据库表,并插入和检索数据。

http://www.xdnf.cn/news/10242.html

相关文章:

  • 宇树机器狗go2添加3d雷达(下)添加velodyne系列雷达
  • 《高等数学》(同济大学·第7版) 第一节《映射与函数》超详细解析
  • 数据库只更新特定字段的两种方式(先读后写 vs. 动态组织 SQL)-golang SQLx 实现代码(动态组织 SQL)
  • 索引的选择与Change Buffer
  • Linux进程信号
  • 车载诊断架构SOVD --- 车辆发现与建连
  • 项目:贪吃蛇实现
  • AI与智能驾驶的关系和原理:技术融合与未来展望-优雅草卓伊凡一、AI大模型基础原理与智能驾驶
  • 【Linux系列】Linux/Unix 系统中的 CPU 使用率
  • C++23 已移除特性解析
  • 电子电路:怎么理解时钟脉冲上升沿这句话?
  • ASP.NET Core SignalR的基本使用
  • 《深入解析SPI协议及其FPGA高效实现》-- 第一篇:SPI协议基础与工作机制
  • Python编程基础(一) | 变量和简单数据类型
  • git下载和安装(完整版)
  • 什么是特性阻抗
  • ArcPy错误处理与调试技巧(2)
  • Mybatis ORM SpringORM
  • 计算机视觉---GT(ground truth)
  • C# 成员函数中如何拿到当前所在类的名字?
  • 使用 HTML + JavaScript 实现一个日历任务管理系统
  • HackMyVM-First
  • vue3 基本语法 父子关系
  • odoo18 新特性
  • Webug4.0靶场通关笔记16- 第16关MySQL配置文件下载
  • 【前端】SPA v.s. MPA
  • C58-字符串拼接函数strcat
  • Unity3D仿星露谷物语开发56之保存角色位置到文件
  • 姜老师MBTI课程:4条轴线的总结
  • FactoryBean 接口