PostgreSQL 数组17 Mar 2025 | 5 分钟阅读 在本节中,我们将了解 PostgreSQL 数组数据类型 的工作原理、数组数据类型的示例,以及一些可访问的数组函数,例如 unnest()、ANY(),它们可以帮助我们更有效地处理 数组值。 我们还将看到在 WHERE 子句中使用数组元素的示例。 什么是 PostgreSQL 数组数据类型?在 PostgreSQL 中,数组数据类型扮演了重要的角色。 众所周知,每个数据类型都有其配套的数组类型,例如 character 有 character[] 数组类型,integer 有 integer[] 数组类型等。 PostgreSQL 允许我们将列指定为任何有效 数据类型 的数组,其中包括 用户定义的数据类型、枚举数据类型和内置数据类型。 注意:PostgreSQL 会在后台为我们生成一个一致的数组类型,以描述我们的数据类型。PostgreSQL 数组数据类型的语法PostgreSQL 数组数据类型的语法如下 PostgreSQL 数组数据类型的示例让我们看一些示例,了解 PostgreSQL 数组数据类型 的工作原理。 我们正在使用 CREATE 命令创建一个新表 person_details,并使用 INSERT 命令插入一些值。 创建 PostgreSQL 数组表person_details 表包含各种列,例如 id、person_name 和 Mobile_numbers,对于 Mobile_number 列,我们使用包含多个人可能拥有的几个手机号码的 一维数组。 输出 执行上述命令后,我们将获得以下消息窗口,该窗口显示 person_details 表已成功创建到 Organization 数据库中。 ![]() 插入 PostgreSQL 数组值成功创建 person_details 表后,我们将使用 INSERT 命令向其中插入一些值。 输出 执行上述命令后,我们将获得以下消息窗口,该窗口显示值已成功插入到 person_details 表中。 ![]() 在上面的插入命令中,我们使用了 ARRAY 构造函数来创建一个数组并将其添加到 Person_details 表中。 我们还可以使用 花括号 {} 而不是使用方括号 [],正如我们可以在以下命令中看到的那样 输出 执行上述命令后,我们将获得以下消息窗口,该窗口显示已成功将三个值插入到 person_details 表中。 ![]() 注意:正如我们在上述命令中看到的,当我们使用花括号 {} 时,我们使用单引号 ' ' 来包含数组,并使用双引号 " " 来包含文本数组项。选择 PostgreSQL 数组数据值在创建和插入 person_details 表的值后,我们将使用 SELECT 命令返回 person_details 表的所有行 输出 成功执行上述命令后,我们将获得以下输出,该输出显示 person_details 表中存在的所有数据 ![]() 默认情况下,如果我们使用 方括号 [] 内的下标访问数组元素,PostgreSQL 使用 基于 1 的数组元素编号,这意味着第一个数组元素从 数字 1 开始。 假设我们需要返回 人的姓名 和第一个 手机号码,正如我们在以下命令中看到的那样 输出 执行上述命令后,我们将获得以下结果,该结果显示了 person_details 表中某人的第一个 手机号码。 ![]() 使用 where 子句查找 PostgreSQL 数组元素为了过滤行,我们可以在 WHERE 子句中使用数组元素作为条件。 在下面的示例中,我们将使用以下命令来识别那些 手机号码 为 (308)-589-23458 作为第二个手机号码的人 输出 成功执行上述命令后,我们将获得以下输出,该输出显示了 person_name 有两个以上 手机号码。 ![]() 更改 PostgreSQL 数组PostgreSQL 允许我们更新整个数组或数组的所有元素。 以下命令用于更新 David smith 的 第二个手机号码。 输出 执行上述命令后,我们将获得以下消息窗口,该窗口显示特定值已成功更新。 ![]() 要整体更新数组,我们可以使用以下命令 输出 执行上述命令后,我们将获得以下消息窗口,该窗口表示整个数组 ![]() 之后,我们将使用以下命令;我们将借助 SELECT 命令检查更新后的值 输出 成功执行上述命令后,我们将获得以下输出,该输出显示了指定的更新值。 ![]() 展开 PostgreSQL 数组数据类型为了将数组扩展到行列表,PostgreSQL 提供了 unnest() 函数。 让我们看一个例子,了解如何使用 unnest() 函数展开数组 在下面的示例中,以下命令展开了 mobile_number 数组的所有手机号码。 输出 执行上述命令后,我们将获得以下输出,该输出显示了扩展到行列表的数组。 ![]() 在 PostgreSQL 数组中搜索如果我们想识别谁拥有以下 手机号码 (555)-333-5432 而与 mobile_number 数组的位置无关,我们可以使用 ANY() 函数,如下面的命令所示 输出 执行上述命令后,我们将获得以下结果 ![]() 概述在 PostgreSQL 数组数据类型 部分,我们学习了以下主题
下一个主题PostgreSQL 用户定义的数据类型 |
我们请求您订阅我们的新闻通讯以获取最新更新。