• 6、PostgreSQL 数据类型之一:数字类型和货币类型


    PostgreSQL 作为一个强大的开源关系型数据库管理系统,本身支持多种数据类型,包括标准 SQL 数据类型以及一些扩展数据类型。

    PostgreSQL 支持多种数据类型的设计理念是为了满足不同应用场景的需求,提供更大的灵活性和数据处理能力。原因如下:

    1. 数据多样性:不同应用需要处理各种类型的数据,包括整数、文本、日期、时间、二进制数据等。支持多种数据类型使 PostgreSQL 可以适用于各种不同的数据处理任务。

    2. 数据完整性:使用正确的数据类型可以帮助确保数据的完整性和一致性。例如,将日期存储为日期类型可以防止无效日期的插入,而将整数存储为整数类型可以防止非数字字符的插入。

    3. 性能优化:不同数据类型的存储和处理方式可能不同,因此 PostgreSQL 可以根据数据类型进行性能优化。这包括索引、查询优化和存储策略的不同选择。

    4. 数据分析和报告:支持不同的数据类型使 PostgreSQL 成为一个强大的数据分析和报告工具。你可以存储和分析文本、数值、日期、时间、几何数据等,以满足各种分析需求。

    5. 灵活性:支持自定义数据类型的能力使用户可以定义自己的数据类型,以适应特定领域的需求。这提供了更高级别的灵活性。

    6. 兼容性:PostgreSQL 旨在兼容 SQL 标准,因此需要支持多种标准 SQL 数据类型。这有助于确保应用程序可以从其他数据库迁移到 PostgreSQL 而不需要大规模的代码更改。

    7. 适应不断演变的需求:不同的应用和不同的数据处理需求不断演变。支持多种数据类型可以使 PostgreSQL 适应这些不断变化的需求,而不需要对数据库架构进行重大更改。

    提供多样性的数据类型支持是 PostgreSQL 的一个关键特性,使其成为一个强大、灵活且适应性强的关系型数据库管理系统,适用于各种应用和使用情境。这种多样性为开发人员提供了更多的选择,以满足其数据处理需求。

    在这部分内容中,我们将深入探讨 PostgreSQL 数据类型的使用。

    当我们在创建表时,需要为每个数据列明确指定所使用的数据类型,以决定我们希望在该列中存储什么样的数据。

    这个做法有着很多好处:

    1. 一致性:对于相同数据类型的列执行操作会获得一致的结果,通常也是最高效的。

    2. 数据验证:正确地使用数据类型可确保数据格式的准确性,它可以拒绝超出数据类型所定义范围的数据。

    3. 紧凑存储:因为每个列可以存储特定类型的值,所以数据以更紧凑的方式存储,有效节省了存储空间。

    4. 性能提升:正确选择和使用数据类型可以更有效地存储数据,从而提高数据处理性能。这能够使你快速处理存储的值,提高系统性能。

    PostgreSQL 支持多种不同的数据类型。此外,我们还可以使用SQL命令来创建自定义数据类型以满足特定需求。这些不同种类的数据类型将在接下来的部分详细讨论。

    一、数字类型

    数字类型在 PostgreSQL 中提供了不同精度和存储能力的选项,用于存储整数和浮点数。下面是一些常见的数字类型以及其特点:

    1. 整数类型

      • smallint:2 字节整数,通常范围从 -32,768 到 32,767。
      • integer:4 字节整数,通常范围从 -2,147,483,648 到 2,147,483,647。
      • bigint:8 字节整数,非常大的范围,通常从 -9,223,372,036,854,775,808 到 9,223,372,036,854,775,807。
    2. 浮点数类型

      • real:4 字节浮点数,通常范围从 1.18E-38 到 3.4E+38,用于单精度浮点数。
      • double precision:8 字节浮点数,通常范围从 2.23E-308 到 1.8E+308,用于双精度浮点数。
    3. 可选精度的小数类型

      • numericdecimal:可用于存储精确的小数值,允许指定精度和标度。例如,numeric(10, 2) 可以存储精确到小数点后两位的值。

    这些数字类型提供了广泛的选项,以适应不同的数据存储需求。我们可以选择适合你数据范围和精度的类型,以确保数据的准确性和最佳性能。在 PostgreSQL 中,这些数字类型可以用于定义表的列,以存储不同类型的数值数据。

    名称存储大小描述范围
    smallint2 字节小范围整数-32,768 至 +32,767
    integer4 字节整数的典型选择-2,147,483,648 至 +2,147,483,647
    bigint8 字节大范围整数-9,223,372,036,854,775,808 至 9,223,372,036,854,775,807
    decimal可变用户指定精度,精确小数点前最多 131,072 位;小数点后最多 16,383 位
    numeric可变用户指定精度,精确小数点前最多 131,072 位;小数点后最多 16,383 位
    real4 字节可变精度,不精确约 6 位小数精度
    双精度8 字节可变精度,不精确约 15 位十进制数字精度
    小系列2 字节自增小整数1 至 32,767
    serial4 字节自增整数1 至 2,147,483,647
    大系列8 字节大自增整数1 至 9,223,372,036,854,775,807

    二、货币类型

    PostgreSQL 中的 money 类型用于存储具有固定小数精度的货币金额。这种数据类型是专门设计用于处理货币数值的,以确保精确性和准确性。以下是关于 money 数据类型在使用中需要注意的一些重要信息:

    • 数据类型名称: money

    • 描述: 存储货币金额,具有固定的小数精度。

    • 值的范围: money 类型可以存储任何表示货币金额的有效数值。它具有固定小数点精度,通常是两位小数。这可以确保金额的精确性和准确性。

    • 强制转换: 可以将数字、整数和大整数等其他数值数据类型强制转换为 money 类型。这使得在处理货币数据时,可以方便地进行计算和比较。

    • 浮点数不建议: PostgreSQL 强烈不建议使用浮点数来处理货币。浮点数的存储和计算方式可能导致舍入误差,因此 money 类型更适合处理货币金额,以确保精确的金融计算。

    使用 money 数据类型是一种良好的实践,特别是在需要处理金融交易或货币金额的应用程序中,以确保数值的准确性和一致性。这有助于避免因舍入误差而引起的金融计算问题。

    名称存储大小描述范围
    money8 字节货币金额-92233720368547758.08 至 +92233720368547758.07
  • 相关阅读:
    大数据软件项目的应用行业
    容联云首发基于统信UOS的Rphone,打造国产化联络中心新生态
    专业数采软件DXP OPC Server售后问题解决方案
    硕士开题报告模板、博士专家推荐信、科研课题申报模板大全
    优化代码 —— 减少 if - else
    交叉编译ssh服务到ARM开发板
    Linux学习笔记之设备驱动篇(3)_内核模块_实验篇
    uniapp原生插件之安卓虹软人脸识别原生插件
    Vue 3 + TypeScript + Vite + Element-Plus + Router + Axios + Pinia项目搭建(内含完整架构)
    学好Elasticsearch系列-聚合查询
  • 原文地址:https://blog.csdn.net/GYN_enyaer/article/details/134015188