PostgreSQL Functions2025年3月17日 | 阅读 7 分钟 在本节中,我们将了解 PostgreSQL 函数 的工作原理、CREATE FUNCTION 命令,并使用 PostgreSQL 的不同工具(例如 pgadmin4 和 SQL shell (PSQL))查看 PostgreSQL CREATE FUNCTION 命令 的实时示例。 并查看调用 用户定义函数 的示例,例如 位置表示法、命名表示法和混合表示法。 什么是 PostgreSQL 函数?PostgreSQL 函数或 存储过程 是一组 SQL 和过程命令(例如 声明、赋值、循环、流程控制 等),存储在数据库服务器上,可以通过 SQL 接口 调用。它也称为 PostgreSQL 存储过程。 我们可以使用多种语言创建 PostgreSQL 函数,例如 SQL、PL/pgSQL、C、Python 等。 它使我们能够在数据库中的一个函数中执行通常需要各种命令和往返的操作。 什么是 PostgreSQL CREATE Function 命令?在 PostgreSQL 中,如果我们想指定一个新的用户定义函数,我们可以使用 CREATE FUNCTION 命令。 PostgreSQL CREATE Function 命令的语法PostgreSQL CREATE Function 命令 的语法如下 在上面的语法中,我们使用了以下参数,如下表所示:
PostgreSQL Create Function 命令示例让我们看一个不同的示例来理解 PostgreSQL CREATE Function 命令的工作原理。 我们正在使用 PostgreSQL 教程中创建的 Javatpoint 数据库中的 Car 表。 创建一个新函数在以下命令中,我们正在创建一个新函数,该函数计算 Car_Price 在 Price_from 和 Price_to 参数之间的 汽车 数量 get_car_Price 函数分为两个主要部分,即 Header 和 Function Body。 我们在 Header 部分使用了以下参数
我们在 函数体 部分使用了以下参数
在 PostgreSQL 中创建函数在 PostgreSQL 中,我们可以通过两种方式创建函数
使用 pgAdmin 创建 PostgreSQL 函数我们将按照以下步骤在 pgAdmin 中创建函数: 步骤 1 首先,我们将在本地系统打开最新版本的 pgAdmin,然后转到对象树并连接到我们想要创建函数的 Javatpoint 示例数据库。 步骤 2 之后,我们将通过单击 工具部分 中的 查询工具 来打开查询工具,如下面的屏幕截图所示。 ![]() 步骤 3 要创建 get_car_Price1() 函数,我们将在 查询工具 中使用上述代码,然后单击 执行 按钮。 执行上述命令后,我们将收到以下消息窗口,显示函数 get_car_Price1() 已成功 创建 到类似数据库中。 ![]() 并且,我们可以在 函数 列表中识别函数 get_car_Price(),如下面的屏幕截图所示。 ![]() 注意:如果无法识别函数名,可以右键单击“函数”节点,然后选择“刷新...”菜单项以刷新函数列表。![]() 使用 SQL Shell (psql) 创建函数我们将按照以下步骤在 psql 中创建表 步骤 1
步骤 2
输出 执行上述命令后,我们将获得以下输出 ![]() 注意:如果我们在 psql 中输入与上面类似的命令来创建函数,它将发出以下错误:函数 get_car_price 已存在相同的参数类型。![]() 因此,为了解决这个错误,我们在下一步中创建一个新函数 get_car_Price1()。 步骤 3 我们将输入以下命令在 javatpoint 数据库中创建函数 get_car_Price1()。 输出 执行上述命令后,我们将得到以下输出,显示 get_car_Price_count1() 函数已成功创建。 ![]() 步骤 4 我们可以使用以下命令列出现有数据库中的所有用户定义函数。 输出 在执行上述命令后,我们将获得以下输出 ![]() 如何调用用户定义函数在 PostgreSQL 中,我们可以通过以下三种方式调用用户定义函数:
使用位置表示法调用函数如果我们要以与参数相同的顺序描述参数,我们可以借助 位置表示法 调用函数。 让我们看一个示例来理解 位置表示法 调用特定函数的工作原理。 在下面的示例中,get_car_price() 的参数是 26000 和 70000,这等效于 Price_from 和 Price_to 参数。 输出 执行上述命令后,我们将得到以下输出,它检索 car_price 在 26000 到 70000 之间的四行。 ![]() 当函数几乎没有任何参数时,我们可以借助 位置表示法 调用函数。 如果函数包含多个参数,我们可以使用 命名表示法 来调用特定的函数,因为使用 命名表示法 会使函数调用更易于理解。 使用命名表示法调用函数在下面的示例中,我们展示了使用命名表示法调用 get_car_Price() 函数的工作原理 输出 执行上述命令后,我们将得到以下输出,该输出根据上述 car_price 范围显示四行。 ![]() 在前面提到的表示法中,我们使用 => 来区分参数的 名称和值。 PostgreSQL 允许使用为 向后兼容性 而创建的旧语法 :=,如下面的命令所示 输出 执行上述命令后,我们将得到与上面命令的结果相似的输出,其中我们使用 '=>' 而不是 ':='。 ![]() 使用混合表示法调用函数它是 位置表示法和命名表示法 的组合。 让我们看一个示例来理解 使用混合表示法调用函数 的工作原理。 在 混合表示法 中,我们不能在 位置参数 之前使用 命名参数。 例如 在下面的命令中,我们将对 Price_from 参数使用 命名表示法 作为 Price_from=>26000,而对于 Price_to 参数,我们使用 位置表示法 作为 70000,如下面的命令所示。 输出 执行上述命令后,PostgreSQL 会引发错误,提示 位置参数不能跟在命名参数后面。 ![]() 为了解决上述错误,我们对 get_car_price() 函数使用 位置和命名表示法,其中 26000 用于表示 位置表示法;另一方面,Price_to=>70000 用于表示 命名表示法。 输出 执行上述命令后,我们将得到以下输出,它返回 car_price 在 26000 到 70000 之间的那些汽车。 ![]() 概述在 PostgreSQL 函数 部分中,我们学习了以下主题
下一主题PostgreSQL 别名 |
我们请求您订阅我们的新闻通讯以获取最新更新。