什么是 PostgreSQL?
PostgreSQL 是一个开源关系数据库。了解 PostgreSQL 的含义、PostgreSQL 数据类型以及其他内容。
成熟且功能强大的开源数据库系统
究竟什么是 PostgreSQL 数据库? 关系数据库(如 PostgreSQL)可帮助用户组织数据并了解数据之间的关系。PostgreSQL 是一种开源关系数据库,具有 30 年的开发支持,这使其成为可用的最成熟的关系数据库之一。PostgreSQL 因其出色的灵活性和完整性,受到开发者和管理员的推崇。例如,PostgreSQL 支持关系查询和非关系查询,其开源性质意味着拥有超过 600 个参与者的专业社区会不断改善数据库系统。
PostgreSQL 的用户有哪些?
PostgreSQL 是一种关键的数据库解决方案,应用于金融服务、制造业、零售业和物流等众多领域,可帮助开发者维护数据的完整性,更轻松地管理各种大小的工作负载,并根据需要进行缩放。
PostgreSQL 用作主数据库。除了拥有良好声誉外,PostgreSQL 还可为已启用地理空间的应用以及将时序、JavaScript 对象表示法绑定 (JSONB) 和关系数据相结合的应用提供相当可观的好处。管理员已经认识到 PostgreSQL 在保护数据方面的高可靠性。总体而言,PostgreSQL 因其不断扩展的功能集和活跃的参与者社区受到欢迎。
为什么使用 PostgreSQL?
由于 PostgreSQL 具有可靠性、安全性和可扩展性,并且它具有丰富的可用工具生态系统,因此开发者将 PostgreSQL 用于各种用例。该软件在设计上与所有主流操作系统(包括 Linux、Windows 和 Macintosh)兼容,并支持文本、图像、声音和视频,这使其成为具有多样化需求的人员和公司的常用数据库。PostgreSQL 被普遍认为是仅次于 MySQL 的开发者最喜欢的数据库技术。
但是,开发者可能选择 PostgreSQL 而不是 MySQL 作为数据库解决方案的原因有很多,其中包括:
访问强大功能
PostgreSQL 为用户提供丰富的选项。有众多功能可供选择,例如时间点恢复、预先编写日志记录、精细访问控制、表空间、嵌套事务、在线备份和多版本并发控制。
可靠性与合规性
得益于数十年来的开发,PostgreSQL 拥有极高容错能力。它符合数据库事务的原子性、一致性、隔离性和持久性 (ACID) 属性。此外,PostgreSQL 跨触发器、外键属性、联接和存储过程支持多种语言。PostgreSQL 支持最常见的数据类型(包括 SQL 2008),并且支持 Unicode、国际字符集和多字节字符编码。
PostgreSQL 是开放源代码许可证
由于 PostgreSQL 作为开源许可证进行访问,因此,用户可以比使用商业数据库系统更灵活、更富有创新性。由于没有许可成本,用户可以探索无限的开发可能性,甚至修改或实现他们选择的源代码。
PostgreSQL 的可伸缩性
出色的可伸缩性是 PostgreSQL 的特点。该软件可以轻松管理大量的数据。PostgreSQL 的可伸缩性不仅适用于它可以管理的数据量,还适用于它可以管理的并发用户的数量。
各种索引类型和全文搜索
PostgreSQL 为用户提供了一系列索引技术(包括 B+ 树索引、通用化倒排索引和通用搜索树),以及对字符串搜索和向量运算字符串进行全文搜索。
灵活性
PostgreSQL 与一系列最主要的编程语言和协议(包括 C、C++、Go、Perl、Python、Java、.Net、Ruby、ODBC 和 Tcl)兼容。这意味着用户可以使用他们最熟悉的语言,而不会有系统冲突风险。
丰富的支持生态系统
PostgreSQL 的开源性质使用户能够获得由众多参与者组成的专业社区的支持,这些参与者不断优化系统,提高其安全性和相关性。用户可以访问此社区的集体知识以报告 bug、就开发项目集思广益并获得问题的答案。PostgreSQL 的开源性质使用户可以通过多种方式获得支持,无论他们是在适用于 Ruby on Rails 的框架、Tableau 还是 Datadog 上工作。开发者不仅可以访问社区的集体知识并通过集思广益获得帮助,还可以与 PostgreSQL 专家和服务联系以解决问题或确定后续步骤。
JSON
由于 PostgreSQL 支持关系查询和非关系查询,因此用户可以使用 SQL 和 JSON 路径表达式访问 JSON 数据。
扩展性
PostgreSQL 不只是存储数据,该软件使用户能够定义功能语言和数据类型,包括自定义类型或用户定义类型。此外,公司的开发者可以使用各种可用的扩展和加载项来自定义其 PostgreSQL 体验,包括 PostGIS、Citus、pg_cron、HyperLogLog 和 t-digest。PostgreSQL 实现了这一程度的扩展性,因为与大多数关系数据库管理系统不同,它在其目录中存储的信息比在传统的表和列中多。用户有权修改表,并在此过程中扩展 PostgreSQL。
PostgreSQL 数据类型介绍
PostgreSQL 用户可以方便地使用大量的本机数据类型(包括 JSONB 和 PostGIS),也可以轻松地添加新 PostgreSQL 数据类型。每个数据类型都设计为支持独特的目的,如全文搜索以及日期和时间数据。若要创建表,用户首先为每个列选择特定的数据类型。这些列的用途是表示表字段中的数据类型。下面是一些最常见的 PostgreSQL 数据类型:
Boolean
布尔数据类型用于表示两状态值,如 true/false、on/off、yes/no 和 null 值。通常使用此数据类型来计算条件语句。控制流可能根据 true/false 结果而变化,例如使用 PostgreSQL CASE 表达式时,基于计算产生各种操作。
字符
此数据类型由字符的字符串(如字母或数字)组成,并用于存储文本值。字符数据类型和字符串类型可以是固定长度(称为 char),也可以是可变长度(称为 varchar 和 long varchar)。用户选择的长度会影响输入的验证。
日期和时间
日期和时间数据类型用于表示日期、时间和时间区间。PostgreSQL 时间戳数据类型精确到微秒,并使用户能够选择在附加或不附加时区信息的情况下存储时间和日期数据。
数值
数值数据类型分为两种形式:精确和近似。精确数值数据类型包含整数数据类型和十进制数据类型。另一方面,近似数据类型包含浮点数据类型,例如,2 字节、4 字节和 8 字节的整数、4 字节和 8 字节的浮点数以及可选择精度的小数。
详细了解 Azure 数据库服务
Azure SQL 数据库
使用云中的托管和智能 SQL 构建随业务同步扩展的应用。
Azure Database for PostgreSQL
专注于应用程序创新,而不是使用完全托管、智能且可缩放的 PostgreSQL 进行数据库管理。
Azure Database for MariaDB
利用所选的开源工具和平台,通过 Azure Database for MariaDB 开发应用程序。
Azure Cache for Redis
快速且完全托管的内存中数据存储。
Azure SQL
了解所有用于应用迁移、现代化和开发的 Azure SQL 数据库服务。
Azure Database for MySQL
利用完全托管的 MySQL 数据库加速创新。