PGSQL

本文介绍了如何在PGSQL中创建和使用函数,包括函数的声明、定义和执行体。同时,文章详细讲解了JSON数据类型、数组数据类型的创建以及timestamp时间戳的应用。此外,还提到了自增ID的实现方式,如使用序列和serial字段。最后,分享了一些实用技巧,如创建只读账号和使用窗口函数进行分析,窗口函数允许在不改变行原始状态的情况下进行分组操作。
摘要由CSDN通过智能技术生成

PGSQL

  1. 函数

create [or replace] function 函数名
returns 数据类型 AS $$ --AS表示后面是要执行的函数体,$$代表开始
DECLARE
name catalog; --注意这有个分号 --赋值符 :=
BEGIN
{body}
END
$$
language plpgsql volatile
cost 100
language表示使用的语言是plpgsql,volatile表示是可变的
–第二种创建函数的方式。
create [or replace] function “public”.“函数名”
returns “pg_catalog”.“void” AS − − 必 须 要 用 双 引 号 , 单 引 号 报 错 B E G I N b o d y E N D --必须要用双引号,单引号报错 BEGIN {body} END ,BEGINbodyEND
language plpgsql volatile
cost 100

有参函数
create or replace function add(in a int,in b int,out sum int)
RETURNS int AS  $$
BEGIN
sum=a+b;     --因为参数定义了in 和out,所以不用写return
END
$$
language plpgsql volatile
cost 100;
select add(1,2)
--不能重载
-----------------------------------------------------------
返回文本类型
create or replace function text()
RETURNS text AS  $$
DECLARE 
_msg text :='HelloText';
BEGIN
RETURN _msg;
END
$$
language plpgsql volatile
cost 100;
select text()
-----------------------------------------------------------------
--返回单行表数据,注意没有begin和end
CREATE OR REPLACE FUNCTION "public"."aaa_aaa"()
  RETURNS "public"."person" AS $BODY$
        SELECT * FROM person;
    $BODY$
  LANGUAGE sql VOLATILE
  COST 100;

select aaa_aaa()

---------------------------------------------------------------------
--Returns setof 关键字和ROWS 来显示多行
CREATE OR REPLACE FUNCTION "public"."student2"()
  RETURNS setof student AS 
  $$
        SELECT * FROM student;
    $$
  LANGUAGE sql VOLATILE
  COST 100
  rows 1000;


-- FUNCTION: public.test_ye_student()

-- DROP FUNCTION public.test_ye_student();

CREATE OR REPL
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值