PostgreSQL 教程

2025年03月17日 | 阅读 9 分钟
PostgreSQL tutorial

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。现在,它是市场上最具创新性的开源数据库。

PostgreSQL tutorial
年份描述
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 的先决条件是了解数据库,主要是 RDBMS 和 MySQL。它是一种具有不同设置和过程的数据库软件。

目标受众

PostgreSQL 教程提供 SQL 的基础和高级概念。我们的 PostgreSQL 教程专为初学者和专业人士设计。

问题

我们保证您在学习我们的 PostgreSQL 教程时不会遇到任何困难。但是,如果本教程中有任何错误,请在联系表格中提交问题或错误,以便我们改进。


下一主题PostgreSQL 语法