postgresql函数

转载 2016年05月31日 10:13:27

来自:http://www.yiibai.com/html/postgresql/2013/080784.html

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

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

语法

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

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

Where,

  • function-name specifies the name of the function. www.yiibai.com

  • [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:

CREATE OR REPLACE FUNCTION totalRecords ()
RETURNS integer AS $total$
declare
	total integer;
BEGIN
   SELECT count(*) into total FROM COMPANY;
   RETURN total;
END;
$total$ LANGUAGE plpgsql; www.yiibai.com 

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=# select totalRecords();  

When the above query is executed the result would be: www.yiibai.com

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

相关文章推荐

PostgreSQl函数部分阅读笔记

  • 2013-06-16 12:10
  • 2.33MB
  • 下载

PostgreSQL简单函数创建

  • 2011-01-12 22:44
  • 171KB
  • 下载

Postgresql数据库的一些字符串操作函数

现把Postgresql的字符串操作函数罗列在以,以便日方使用函数:string || string 说明:String concatenation 字符串连接操作例子:Post || greSQL ...

PostgreSQL存储过程(函数)

从接触分布式greenplum数据库,然后了解到其内部的原理,再熟悉postgreSQL数据库,然后学习DML,其基本的应用和SQL是一样的,基本语法就参考postgresql手册 和postgre...

postgreSQL中的array_to_string函数和如何实现group_concat

工具 postgreSQL9.4今天看到这个SQL语句:select array_to_string(group_concat(department_name),'、') from departm...

PostgreSQL如何实现MySQL中的group_concat聚集函数(简单的拼接功能)

1.postgreSQL中没有现成的group_concat聚集函数 2.postgreSQL可以自定义聚集函数一.首先我们要知道MySQL中的group_concat聚集函数是干什么的? gro...

PostgreSQL学习手册(函数和操作符<二>)

六、模式匹配:     PostgreSQL中提供了三种实现模式匹配的方法:SQL LIKE操作符,更近一些的SIMILAR TO操作符,和POSIX-风格正则表达式。     1. LIKE...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)