PostgreSQL的整型、浮点型、固定精度数值和序列等数字类型

 更新时间:2024年09月21日 14:13:13   作者:xiongood  
PostgreSQL(简称PGSQL)是一种开源关系型数据库管理系统,广泛应用于企业级应用,文章详细介绍了PostgreSQL的数字类型,包括整型、浮点型、固定精度数值型和序列类型,强调了选择合适的数字类型对于数据库的存储效率、查询性能和数据准确性的重要性

PostgreSQL(简称PGSQL)是一个功能强大的开源关系型数据库管理系统,广泛应用于企业级应用。在数据建模和数据库设计时,选择合适的数字类型至关重要,因为它不仅影响数据的存储效率,还直接关系到查询性能和数据的准确性。本文将深入探讨PostgreSQL中的数字类型,包括整型、浮点型、固定精度数值型以及序列类型,并通过代码样例展示其用法。

整型(Integer Types)

PostgreSQL提供了多种整型数据类型,用于存储没有小数部分的数值。主要类型包括:

  • SMALLINT:2字节,范围从-32768到32767。
  • INTEGERINT: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。

代码样例

CREATE TABLE employees (  
    id SERIAL PRIMARY KEY,  
    employee_id BIGINT NOT NULL,  
    department_id SMALLINT  
);  
  
INSERT INTO employees (employee_id, department_id) VALUES (1234567890123, 10);  
  
SELECT * FROM employees;

浮点型(Floating-Point Types)

浮点型用于存储带小数点的数值,有两种主要类型:

  • REALFLOAT4:4字节的单精度浮点数。
  • DOUBLE PRECISIONFLOAT8:8字节的双精度浮点数。

代码样例

CREATE TABLE products (  
    product_id SERIAL PRIMARY KEY,  
    price DOUBLE PRECISION NOT NULL  
);  
  
INSERT INTO products (price) VALUES (199.99);  
INSERT INTO products (price) VALUES (123456789.0123456789);  
  
SELECT * FROM products;

固定精度数值型(Fixed-Point Numeric Types)

对于需要高精度计算的场景(如金融应用),PostgreSQL提供了NUMERICDECIMAL类型(两者在PostgreSQL中是等价的)。这些类型可以存储非常精确的数值,包括非常大的数值和非常小的数值。使用时需要指定精度(总位数)和标度(小数点后的位数)。

代码样例

CREATE TABLE financial_transactions (  
    transaction_id SERIAL PRIMARY KEY,  
    amount NUMERIC(10, 2) NOT NULL  
);  
  
INSERT INTO financial_transactions (amount) VALUES (1234567.89);  
  
SELECT * FROM financial_transactions;

序列(Serial Types)

序列是PostgreSQL中的一个特殊类型,通常用于自动生成唯一的标识符(如主键)。SERIALBIGSERIALSMALLSERIAL是自动增长的整型字段的快捷方式,它们在底层使用序列生成器。

注意:在较新版本的PostgreSQL中,推荐使用IDENTITY列作为SERIALBIGSERIAL等类型的替代,因为它提供了更多的灵活性和控制。

代码样例(使用SERIAL):

-- 使用SERIAL创建表  
CREATE TABLE users (  
    id SERIAL PRIMARY KEY,  
    username VARCHAR(50) NOT NULL  
);  
  
-- 插入数据时,不需要指定id的值,PostgreSQL会自动生成  
INSERT INTO users (username) VALUES ('john_doe');  
  
SELECT * FROM users;

总结

PostgreSQL提供了丰富的数字类型以满足不同应用场景的需求。从基本的整型到高精度的数值型,再到自动生成唯一值的序列,这些类型的选择对于数据库的设计、性能和准确性都有着至关重要的影响。通过合理选择和应用这些类型,可以构建出高效、稳定且易于维护的数据库系统。

到此这篇关于PostgreSQL的整型、浮点型、数值型和序列类型等数字类型的文章就介绍到这了,更多相关PostgreSQL数字类型内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • postgres之jsonb属性的使用操作

    postgres之jsonb属性的使用操作

    这篇文章主要介绍了postgres之jsonb属性的使用操作,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-06-06
  • 如何使用Dockerfile创建PostgreSQL数据库

    如何使用Dockerfile创建PostgreSQL数据库

    这篇文章主要介绍了如何使用Dockerfile创建PostgreSQL数据库,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧
    2024-02-02
  • Postgresql 如何清理WAL日志

    Postgresql 如何清理WAL日志

    这篇文章主要介绍了Postgresql 实现清理WAL日志的方式,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-01-01
  • 在Linux系统上安装PostgreSQL数据库

    在Linux系统上安装PostgreSQL数据库

    这篇文章介绍了在Linux系统上安装PostgreSQL数据库的方法,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-03-03
  • PostgreSQL 定义返回表函数的操作

    PostgreSQL 定义返回表函数的操作

    这篇文章主要介绍了PostgreSQL 定义返回表函数的操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-01-01
  • PostgreSQL使用MySQL作为外部表(mysql_fdw)

    PostgreSQL使用MySQL作为外部表(mysql_fdw)

    PostgreSQL 提供了一种访问和操作外部数据源的机制,称为外部数据包装器,本文主要给大家介绍了PostgreSQL使用MySQL作为外部表的方法,感兴趣的朋友跟随小编一起看看吧
    2022-11-11
  • pgsql添加自增序列、设置表某个字段自增操作

    pgsql添加自增序列、设置表某个字段自增操作

    这篇文章主要介绍了pgsql添加自增序列、设置表某个字段自增操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-12-12
  • PostgreSQL常用字符串分割函数整理汇总

    PostgreSQL常用字符串分割函数整理汇总

    作为当前最强大的开源数据库,Postgresql(以下简称pg)对字符的处理也是最为强大的,下面这篇文章主要给大家介绍了关于PostgreSQL常用字符串分割函数的相关资料,文中通过示例代码介绍的非常详细,需要的朋友可以参考下
    2022-07-07
  • PostgreSQL处理时间段、时长转为秒、分、小时代码示例

    PostgreSQL处理时间段、时长转为秒、分、小时代码示例

    最近在操作数据库时,遇到频繁的时间操作,每次弄完了就忘了,今天痛定思痛,下定决心对postgres的时间操作进行一下总结,这篇文章主要给大家介绍了关于PostgreSQL处理时间段、时长转为秒、分、小时的相关资料,需要的朋友可以参考下
    2023-10-10
  • PostgreSQL ROW_NUMBER() OVER()的用法说明

    PostgreSQL ROW_NUMBER() OVER()的用法说明

    这篇文章主要介绍了PostgreSQL ROW_NUMBER() OVER()的用法说明,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-02-02

最新评论