PostgreSQL介绍

本文涉及的产品
云原生数据库 PolarDB MySQL 版,通用型 2核4GB 50GB
云原生数据库 PolarDB PostgreSQL 版,标准版 2核4GB 50GB
简介: 【10月更文挑战第11天】

PostgreSQL是一个功能强大的开源对象-关系型数据库管理系统(ORDBMS),它以其可靠性、健壮性、灵活性和支持标准SQL的能力而著称。PostgreSQL项目是由一群志愿者开发的,始于1986年,当时是作为加州大学伯克利分校的POSTGRES项目的一部分。

特点

  1. 开源:PostgreSQL是开源软件,遵循宽松的BSD许可证,允许用户免费使用、修改和分发。
  2. 扩展性:用户可以定义自己的数据类型、函数和存储过程。
  3. 事务性:支持多版本并发控制(MVCC),确保了事务的ACID属性(原子性、一致性、隔离性和持久性)。
  4. 高级查询能力:支持复杂的查询,包括子查询、连接和窗口函数。
  5. 存储过程:支持多种编程语言编写存储过程,包括PL/pgSQL、C、Python等。
  6. 触发器和视图:支持触发器和复杂的视图,可以用于实现复杂的业务逻辑。
  7. 复制和故障转移:支持多种复制解决方案,包括流复制和逻辑复制。
  8. 索引:支持多种索引类型,如B-tree、哈希、GiST、GIN和BRIN。
  9. 全文搜索:内置全文搜索能力。
  10. 数据完整性:支持外键、检查约束、唯一约束和排除约束。

    优点

  11. 可靠性:PostgreSQL有着良好的稳定性记录,适合关键业务应用。
  12. 功能丰富:提供了大量高级数据库功能,无需额外的费用。
  13. 社区支持:拥有一个活跃的社区,提供大量的文档、插件和帮助。
  14. 可扩展性:可以通过添加新的数据类型、函数和索引方法来扩展其功能。
  15. 兼容性:遵循SQL标准,提供了良好的兼容性。

    应用场景

  16. Web应用程序:由于其强大的查询能力和稳定性,PostgreSQL是开发Web应用程序的理想选择。
  17. 移动应用:作为后端数据库,支持移动应用的离线操作和数据同步。
  18. 数据仓库:支持复杂的分析查询,适合数据仓库应用。
  19. 地理信息系统(GIS):PostgreSQL通过PostGIS扩展支持GIS功能。
  20. 时间序列数据:通过TimescaleDB等扩展,可以高效地处理时间序列数据。
  21. 实时应用:支持高并发读写操作,适用于实时数据处理。

    由来

    PostgreSQL的前身是POSTGRES项目,由Michael Stonebraker教授领导的团队在1986年启动。POSTGRES是INGRES数据库系统的一个后继项目,旨在解决INGRES中的一些限制,并引入面向对象的概念。1996年,POSTGRES的代码被重新命名为PostgreSQL,以反映其对SQL标准的支持,并开始作为一个开源项目进行开发。从那时起,PostgreSQL社区持续发展,添加了新的功能,提高了性能和稳定性。
    PostgreSQL支持广泛的数据类型,这些数据类型可以分为几个主要类别:

    标量类型

  22. 布尔类型boolean
  23. 数值类型
    • 整数类型:smallint, integer, bigint
    • 浮点类型:real, double precision
    • 精确数值类型:decimal, numeric
    • 序列类型:serial, bigserial(自动增长的整数)
  24. 货币类型money
  25. 字符类型
    • 定长字符串:character(n)
    • 变长字符串:varchar(n)character varying(n)
    • 大型对象文本:text
  26. 二进制类型
    • 定长二进制字符串:bit(n)
    • 变长二进制字符串:bit varying(n)
    • 二进制大型对象:bytea
  27. 日期/时间类型
    • 日期:date
    • 时间:time(无时区),time with time zone
    • 日期和时间:timestamp(无时区),timestamp with time zone
    • 时间间隔:interval

      枚举类型

      用户定义的枚举类型,允许列值是预定义集合中的一个值。

      几何类型

      用于表示平面上的点、线、盒子等几何形状。
  • point
  • line
  • lseg(线段)
  • box
  • path
  • polygon
  • circle

    网络地址类型

    用于存储IPv4、IPv6地址和MAC地址。
  • cidr(无类别域间路由)
  • inet(互联网地址)
  • macaddr

    位串类型

    用于存储位串。

    文本搜索类型

    用于全文搜索。

    UUID类型

    用于存储通用唯一标识符(UUID)。

    XML类型

    用于存储XML数据。

    JSON/JSONB类型

    用于存储JSON(JavaScript Object Notation)数据。
  • json
  • jsonb(二进制JSON,更高效)

    Arrays

    PostgreSQL也支持数组类型,可以创建由基本类型组成的数组。

    复合类型

    允许将多个字段组合成一个记录。

    范围类型

    用于表示数值、日期/时间或枚举值的范围。

    对象标识符类型

    oid,用于内部系统标识符。

    伪类型

    这些类型主要用于内部或特殊目的,如voidcstringanyanyarrayanyelementanyenumanynonarrayanyrange等。
    这些数据类型为PostgreSQL提供了极大的灵活性和功能,使其能够满足各种数据存储和查询需求。
相关实践学习
使用PolarDB和ECS搭建门户网站
本场景主要介绍基于PolarDB和ECS实现搭建门户网站。
阿里云数据库产品家族及特性
阿里云智能数据库产品团队一直致力于不断健全产品体系,提升产品性能,打磨产品功能,从而帮助客户实现更加极致的弹性能力、具备更强的扩展能力、并利用云设施进一步降低企业成本。以云原生+分布式为核心技术抓手,打造以自研的在线事务型(OLTP)数据库Polar DB和在线分析型(OLAP)数据库Analytic DB为代表的新一代企业级云原生数据库产品体系, 结合NoSQL数据库、数据库生态工具、云原生智能化数据库管控平台,为阿里巴巴经济体以及各个行业的企业客户和开发者提供从公共云到混合云再到私有云的完整解决方案,提供基于云基础设施进行数据从处理、到存储、再到计算与分析的一体化解决方案。本节课带你了解阿里云数据库产品家族及特性。
相关文章
|
1月前
|
关系型数据库 Linux 数据库
PostgreSQL
PostgreSQL
30 2
|
2月前
|
SQL 关系型数据库 数据库
在 PostgreSQL 中使用 LIKE
【8月更文挑战第12天】
256 1
|
2月前
|
关系型数据库 数据挖掘 数据库
在 PostgreSQL 中使用 IN
【8月更文挑战第12天】
218 0
在 PostgreSQL 中使用 IN
|
2月前
|
存储 关系型数据库 PostgreSQL
PostgreSQL有何特点?
【8月更文挑战第5天】PostgreSQL有何特点?
116 6
|
存储 JSON 安全
PostgreSQL 13
背景         PostgreSQL 全球开发组于2020年9月24日宣布PostgreSQL 13正式发布,作为世界上最先进的开源数据库,PostgresSQL 13是目前的最新版本。         阿里云是中国地区第一家支持PostgreSQL 13的云厂商,在 RDS 和 专属集群 两条产品线都提供了
|
安全 关系型数据库 数据库
|
SQL Oracle 关系型数据库
|
关系型数据库 PostgreSQL