PostgreSQL 教程2025年03月17日 | 阅读 9 分钟  PostgreSQL 是一个流行的关系型数据库管理系统 (RDBMS)。我们的 PostgreSQL 教程提供了 PostgreSQL 的基础和高级概念。在本教程中,我们将学习 PostgreSQL 语言的所有主题,例如创建数据库、删除数据库、选择数据库、选择表、更新记录、创建表、删除记录、删除表、触发器、函数、插入记录、过程、游标等。 我们还将提供 PostgreSQL 面试题和测验,以帮助您更好地理解 PostgreSQL 语言。本教程将帮助我们理解 PostgreSQL 的所有主要功能,并提供有关如何使用 PostgreSQL 的知识。 什么是 PostgreSQL?PostgreSQL 是一个对象关系数据库管理系统 (ORDBMS) [开源对象关系数据库管理系统]。它用于安全地存储数据;支持最佳实践,并在处理请求时允许恢复它们。 - PostgreSQL 最初于1996 年 7 月 8 日在加州大学推出。
- 它是第一个实现MVCC [多版本并发控制] 功能的 DBMS,甚至早于 Oracle。多版本并发控制属性在 Oracle 中被称为快照隔离。
- 它使用C 编程语言编写。
- PostgreSQL 是跨平台的,可以在多种操作系统上运行,例如MicrosoftWindows, UNIX, FreeBSD, Mac OS X, Solaris, HP-UX, LINUX等。
- PostgreSQL 是macOS 服务器现有的数据库。
- PostgreSQL 也发音为Post-gress-Q-L,它由PostgreSQL Global Development Group(一个由志愿者组成的全球团队)开发,不受任何组织或其他私人实体的控制。
- PostgreSQL 将允许我们使用Java、C 和 C++等多种编程语言添加自定义函数。
- 在此,我们可以描述我们的函数式语言、索引类型和数据类型,我们还可以创建自定义插件来提高我们需求的可靠性。
- 其源代码可在PostgreSQL 许可证下访问;因此,我们可以免费使用、修改和以任何形式分发 PostgreSQL。
- PostgreSQL 遵循事务以及ACID(原子性、一致性、隔离性、持久性)属性。
- PostgreSQL 的主要目标是处理从单一技术到 Web 服务或具有多个并发用户的具有数据仓库的各种工作。
PostgreSQL 历史PostgreSQL 由PostgreSQL Global Development Group 开发,该组织由加州大学伯克利分校[UCB] 的计算机科学教授Michael Stonebraker领导。Stonebraker 教授于1986 年开始,作为 Ingres 项目的后续项目,以克服现有数据库系统的问题。 最初,它被称为Postgres,但在 1996 年,该项目被重命名为PostgreSQL。然后,在 2007 年,他们进行了一些分析,开发团队决定保留名称为PostgreSQL。现在,它是市场上最具创新性的开源数据库。  年份 | 描述 |
---|
1977-1985:在这几年里,INGRES项目得以开发。 | - Ingres 公司于 1980 年开发,并于 1994 年被CA (Computer Associates) 收购。
- Ingres 项目是关系数据库的概念验证。
| 1986-1994:POSTGRES | - 在 INGRES 中,升级功能对于面向对象和查询语言Quel至关重要。
- INGRES 的代码库没有被用作 POSTGRES 的基础。
- 之后,它被商业化为 Illustrate,后被Informix 和 IBM收购。
| 1994-1995:Postgres95 | - 1994 年,添加了对 SQL 的支持。
- 1995 年,它们以Postgres95发布。
- 1996 年,它们以PostgreSQL 6.0重新发布。
- PostgreSQL Global Development Team的成立。
|
注意:1997 年,第一个 PostgreSQL 版本发布了其设计的 6.0 版本。之后,世界各地的开发人员将继续作为 PostgreSQL Global Development Group 在软件上工作。开发将继续创建对开源软件和 PostgreSQL 许可证都可用的版本。PostgreSQL 特性它是最受欢迎的数据库之一,支持 JSON(非关系型)查询和 SQL(关系型)查询。PostgreSQL 是一个对象关系数据库管理系统 (ORDBMS)。它包含各种高级数据类型和强大的功能集,可提高软件的可扩展性、可靠性和数据完整性。 在本节中,我们将讨论 PostgreSQL 的最先进的特性、数据库管理工具以及优点和缺点,这将有助于我们增强 PostgreSQL 知识。 PostgreSQL 包含多种功能,旨在帮助开发人员开发应用程序,管理数据集中的数据,并使经理能够维护数据完整性,并创建容错环境。每当有新版本发布时,PostgreSQL Global group of developers都会增强现有功能并根据用户需求添加新功能。 PostgreSQL 的主要特性如下: - 免费下载:它是开源的,我们可以从 PostgreSQL 官方网站轻松下载。
- 兼容多种操作系统:PostgreSQL 运行在所有主流操作系统上,如Microsoft Windows、Linux、MacOS X、UNIX (AIX, BSD, HP-UX, SGI IRIX, Solaris, and Tru64) 等。
- 兼容多种编程语言:它支持多种编程接口,如C/C++、JAVA、Python、Perl、Ruby、Tcl 和 ODBC(开放数据库连接)。
注意:Tcl 是一种通用的、高级的、动态的、解释型的编程语言。- 兼容数据完整性:它支持数据完整性,包括以下内容
- 主键
- UNIQUE, NOT NULL
- 外键
- 显式锁,咨询锁
- 排他约束
- 支持多种 SQL 功能:PostgreSQL 支持多种 SQL 功能,包括以下内容
- MVCC(多版本并发控制)。
- 它支持多种索引,如多列、部分、B 树和表达式。
- SQL 子查询。
- 复杂的 SQL 查询。
- 流复制
- 它支持事务,通过保存点支持嵌套事务。
- 表达式的即时编译
- 表分区
- 兼容多种数据类型:PostgreSQL 支持各种数据类型,如
- 结构化:数组、日期和时间、UUID(通用唯一标识符)、数组、范围。
- 原始类型:字符串、整数、布尔值、数值。
- 自定义:自定义类型、复合类型。
- 几何:多边形、圆、线、点,
- 文档:XML、JSON/JSONB、键值对。
- 高度可扩展:PostgreSQL 在多个阶段具有高度可扩展性,如下所示
- 它支持 Perl、PL/PGSQL 和 Python 等过程式语言。
- JSON/SQL 路径表达式
- 存储过程和函数。
- 对于表,它支持可自定义的存储接口。
- 它兼容外部数据包装器,该包装器通过标准的 SQL 接口连接到其他数据库。
- 安全:它很安全,因为它遵循几个安全方面,如下所示
- PostgreSQL 提供了强大的访问控制系统。
- 它包括多种身份验证方式,如轻量级目录访问协议(LDAP)、通用安全服务应用程序编程接口(GSSAPI)、SCRAM-SHA-256、安全支持提供者接口(SSPI)、证书等。
- PostgreSQL 支持列和行级安全。
- 高度可靠:它高度可靠,并提供灾难恢复,例如
- 活动备用、PITR(时间点恢复)
- 它支持 WAL(预写日志)
- 表空间
- 它支持不同类型的复制,如同步、异步和逻辑。
- PostgreSQL 支持国际化,这意味着国际字符集包括 ICU 排序规则、不区分重音和大小写的排序规则以及全文搜索。
- 在 PostgreSQL 中,一个表可以设置为继承其“父”表的特征。
- 它兼容 ANSI-SQL2008。
- PostgreSQL 将帮助我们提高服务器端编程的功能。
- 我们可以安装各种扩展来为 PostgreSQL 添加额外功能。
PostgreSQL 数据库管理PostgreSQL 数据库管理涵盖了基本的 PostgreSQL 数据库服务器管理操作。市面上有多种开源和付费工具可供选择。让我们了解一些最常用的 PostgreSQL 数据库管理工具。 psql它是一个基于终端的前端命令行工具;我们可以在其中直接输入 SQL 查询或从文件运行它们,也可以查看查询结果。它为我们提供了许多元命令和多个 Shell,例如自动化各种任务并促进脚本编写。 phpPgAdmin它是一个基于 Web 的 PostgreSQL 管理工具,建立在 phpMyAdmin 界面之上,phpMyAdmin 最初是为 MySQL 管理编写的。phpPgAdmin 使用PHP编程语言编写。它可以轻松配置并提供简单的数据操作。它支持slony 主从复制机制,并提供27 种语言版本。在这里,我们可以导入 SQL 脚本并复制数据。 pgAdmin它是 PostgreSQL 最著名和开源的管理和开发平台之一。PgAdmin 是世界上最先进的数据库。它可以在多种操作系统上使用,例如UNIX、Linux、Mac OS X 和 Windows,以支持PostgreSQL 9.2及更高版本。 pgFouine它是 PostgreSQL 一个著名的查询日志分析器,用于从 PostgreSQL 日志文件中生成报告。它可以通过EPEL(企业 Linux 的额外软件包)存储库在RHEL(Red Hat Enterprise Linux)和 CentOS Linux 系统上使用。它是一个PHP脚本,并提供适度的库列表。pgFouine 也支持旧的 UNIX 系统和 Windows。 pgDevOps它是一套 Web 工具,用于安装和管理多个 PostgreSQL 扩展和版本;它创建SQL查询和社区组件,监控正在运行的数据库,并识别性能问题。它是一个WSGI Python27 Flask 应用程序,可以在各种跨平台系统上运行,例如Windows、Linux 和 OSX。它是一个开源应用程序,可供多个用户在多个服务器上使用。 注意:大多数组织推荐使用专有工具进行 PostgreSQL。通常,它是一个开源工具,用于共享管理功能。另一方面,它在数据建模、报告导入和导出方面提供了改进。一些常用的专有工具如下: - Lightning Admin for PostgreSQL
- Borland Kylix
- DBOne
- DBTools Manager PgManager
- Rekall
- Data Architect,
- SyBase Power Designer
- Microsoft Access
- eRWin
- DeZign for Databases
- PGExplorer
- Case Studio 2
- pgEdit
- RazorSQL
- MicroOLAP Database Designer
- Aqua Data Studio
- EMS Database Management Tools for PostgreSQL
- Navicat
- SQL Maestro Group products for PostgreSQL
- Datanamic DataDiff for PostgreSQL
- Datanamic SchemaDiff for PostgreSQL
- DB MultiRun PostgreSQL Edition
- SQLPro
- SQL Image Viewer
- SQL Data Sets 等。
PostgreSQL 的优缺点PostgreSQL 的优点如下: - PostgreSQL 易于使用;因此,我们不需要太多培训。
- 它对企业和嵌入式使用都需要较低的维护管理。
- PostgreSQL 管理关系数据库中的数据,因为它非常强大和健壮。
- 我们可以快速获取 PostgreSQL 的源代码,因为它是在开源许可证下免费提供的,并且我们可以立即实现,根据我们的需求进行更改。
- 它可以作为 LAMP 堆栈选项执行动态 Web 应用程序和网站。
- PostgreSQL 是一个高度容错的数据库。
PostgreSQL 的缺点如下: - 与 MySQL 相比,PostgreSQL 不支持各种开源应用程序。
- 在这里,创建复制有点复杂。
- 它不是由一家公司维护的。
- PostgreSQL 的速度性能不如其他工具。
- 与 MySQL 相比,它有点慢。
- 有时,安装过程对学习者来说并不容易。
PostgreSQL 索引
PostgreSQL 教程 PostgreSQL 数据库 PostgreSQL 表 PostgreSQL 模式 PostgreSQL 查询 PostgreSQL 语句 PostgreSQL 条件 PostgreSQL 视图 PostgreSQL Join PostgreSQL Advance 面试题
前提条件学习 PostgreSQL 的先决条件是了解数据库,主要是 RDBMS 和 MySQL。它是一种具有不同设置和过程的数据库软件。 目标受众PostgreSQL 教程提供 SQL 的基础和高级概念。我们的 PostgreSQL 教程专为初学者和专业人士设计。 问题我们保证您在学习我们的 PostgreSQL 教程时不会遇到任何困难。但是,如果本教程中有任何错误,请在联系表格中提交问题或错误,以便我们改进。
|