热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

PostgreSQL函数使用介绍

PostgreSQL的函数也被称为存储过程,可执行操作,通常会作为一些查询和往返在一个单一的数据库内的函数。函数允许数据库重新使用其他应用程序可以直接与您的存储过程而不是一个中间层或。可以创建在所选择的语言,如SQL,PL/pgSQL,C,Python等功能语法创

PostgreSQL的函数也被称为存储过程,可执行操作,通常会作为一些查询和往返在一个单一的数据库内的函数。函数允许数据库重新使用其他应用程序可以直接与您的存储过程而不是一个中间层或。

可以创建在所选择的语言,如SQL,PL/pgSQL,C,Python等功能

语法

创建一个函数的基本语法如下:

CREATE  "pun">[OR REPLACE "pun">] "pln"> FUNCTION function_name  "pun">(arguments "pun">)
RETURNS return_datatype AS $variable_name$
  DECLARE
    declaration;
    [...]
  BEGIN
    <"pln"> function_body  "pun">>
    [...]
    RETURN { "pln"> variable_name | "pln"> value }
  END "pun">; "pln"> LANGUAGE plpgsql;

Where,

function-name specifies the name of the function.

[OR REPLACE] option allows modifying an existing function.

The function must contain a return statement.

RETURN clause specifies that data type you are going to return from the function. Thereturn_datatype can be a base, composite, or domain type, or can reference the type of a table column.

function-body contains the executable part.

The AS keyword is used for creating a standalone function.

plpgsql is the name of the language that the function is implemented in. Here we use this option for PostgreSQL, it Can be SQL, C, internal, or the name of a user-defined procedural language. For backward compatibility, the name can be enclosed by single quotes.

语法

The following example illustrates creating and calling a standalone function. This function returns the total number of records in the COMPANY table. We will use the COMPANY table, which has following records:

testdb# select * from COMPANY;
 id | name  | age | address   | salary
----+-------+-----+-----------+--------
  1 | Paul  |  32 | California|  20000
  2 | Allen |  25 | Texas     |  15000
  3 | Teddy |  23 | Norway    |  20000
  4 | Mark  |  25 | Rich-Mond |  65000
  5 | David |  27 | Texas     |  85000
  6 | Kim   |  22 | South-Hall|  45000
  7 | James |  24 | Houston   |  10000
(7 rows)

Function totalRecords() is as follows:

"pln">CREATE OR REPLACE FUNCTION totalRecords  "pun">()
RETURNS integer AS $total$
declare
        total integer; "pln">
BEGIN
   SELECT count(*) "pln"> into "pln"> total FROM COMPANY "pun">;
   RETURN total;
END "pun">;
$total$ LANGUAGE plpgsql;

When the above query is executed the result would be:

testdb# CREATE FUNCTION

Now let's execute a call to this function and check the records in the COMPANY table

testdb "pun">=#  "kwd">select "pln"> totalRecords();

When the above query is executed the result would be:

 totalrecords
--------------
            7
(1 row)

推荐阅读
author-avatar
陈爱梅志杰力凯
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有