PostgreSQL 是一个强大开源的对象-关系数据库系统。经过多年的维护和升级,在可靠性、数据完整性和正确性方面赢得了良好的声誉。
本教程将为您提供 PostgreSQL 的快速入门,并使您熟悉 PostgreSQL 编程。
什么是PostgreSQL?
PostgreSQL(发音为post-gress-QL)是一个由全球志愿者团队开发的开源关系数据库管理系统 (DBMS)。PostgreSQL 不受任何公司或其他私人实体的控制,并且源代码是免费提供的。
PostgreSQL,最初称为 Postgres,是由一位名叫 Michael Stonebraker 的计算机科学教授在 UCB 创建的。Stonebraker 于 1986 年启动了 Postgres,作为其前身 Ingres 的后续项目,Ingres 现在归 Computer Associates 所有。
PostgreSQL 特征
- 函数:通过函数,可以在数据库服务器端执行指令程序。
- 索引:用户可以自定义索引方法,或使用内置的 B 树,哈希表与 GiST 索引。
- 触发器:触发器是由SQL语句查询所触发的事件。如:一个INSERT语句可能触发一个检查数据完整性的触发器。触发器通常由INSERT或UPDATE语句触发。 多版本并发控制:PostgreSQL使用多版本并发控制(MVCC,Multiversion concurrency control)系统进行并发控制,该系统向每个用户提供了一个数据库的"快照",用户在事务内所作的每个修改,对于其他的用户都不可见,直到该事务成功提交。
- 规则:规则(RULE)允许一个查询能被重写,通常用来实现对视图(VIEW)的操作,如插入(INSERT)、更新(UPDATE)、删除(DELETE)。
- 数据类型:包括文本、任意精度的数值数组、JSON 数据、枚举类型、XML 数据等。
- 全文检索:通过 Tsearch2 或 OpenFTS,8.3版本中内嵌 Tsearch2。
- NoSQL:JSON,JSONB,XML,HStore 原生支持,至 NoSQL 数据库的外部数据包装器。
- 数据仓库:能平滑迁移至同属 PostgreSQL 生态的 GreenPlum,DeepGreen,HAWK 等,使用 FDW 进行 ETL。
程序语言支持
PostgreSQL 支持四种标准的编程语言,允许用户用任何一种语言编写自己的代码,并且可以由 PostgreSQL 数据库服务器执行。这编程语言是 - PL/pgSQL、PL/Tcl、PL/Perl 和 PL/Python。此外,还支持其他非标准编程语言,如 PL/PHP、PL/V8、PL/Ruby、PL/Java 等。