PL/pgSQL之入门
PL/pgSQL介绍
plpgsql入门,介绍使用它有哪些优点以及一个HelloWorld。
PL/pgSQL是一种用于PostgreSQL数据库系统的可载入的过程语言。
- 可以被用来创建函数和触发器过程
- 对SQL语言增加控制结构
- 可以执行复杂计算
- 继承所有用户定义类型、函数和操作符
- 可以被定义为受服务器信任
- 便于使用
优点
- 客户端和服务器之间的额外往返通信被消除
- 客户端不需要的中间结果不必被整理或者在服务器和客户端之间传送
- 多轮的查询解析可以被避免 与不使用存储函数的应用相比,这能够导致可观的性能提升。
PL/pgSQL 的 HelloWorld
函数的结构:
CREATE FUNCTION somefunc(integer, text) RETURNS integer
AS 'function body text'
LANGUAGE plpgsql;
在开发过程中不关心函数是否存在,可以使用 CREATE OR REPLACE Function来创建函数。
PL/pgSQL是一种块结构的语言。一个块被定义为:
[ <<label>> ]
[ DECLAREdeclarations
BEGINstatements
END [ label ];
真正的HelloWorld
CREATE FUNCTION helloworld() RETURNS varchar AS $$
<< outerblock >>
DECLAREname varchar := 'unknown';
BEGINRAISE NOTICE 'My Name is %', name ; -- Prints (My Name is unknown)name := 'plpgsql';---- 创建一个子块--DECLAREname varchar := 'interblock';BEGINRAISE NOTICE 'My Name is %', name; -- Prints (My Name is interblock)RAISE NOTICE 'My Name is %', outerblock.name; -- Prints (My Name is unknown)END;RAISE NOTICE 'My Name is %', name; -- Prints (My Name is plpgsql)RETURN name;
END;
$$ LANGUAGE plpgsql;
执行
将以上语句复制在Navicat或者PgAdmin等数据库客户端执行,即可创建helloworld函数。
以上看到执行helloworld函数后输出信息以及结果,结果为plpgsql。
以上为本篇的入门介绍,欢迎各位批评指正。
关于作者
大家有需要介绍哪些部分,或者一些想法欢迎联系我。
GISer
QQ: 1016817543
邮箱:1016817543@qq.com
github:https://github.com/MrSmallLiu (欢迎star)
刘航,国信司南(北京)地理信息技术有限公司,技术经理。负责过多个基于 PostgreSQL 数据库以及 PostGIS 的大中型项目。公司矢量切片产品(基于 PostgreSQL 数据库)研发核心人员。
PL/pgSQL之入门相关推荐
- PostgreSQL学习手册(PL/pgSQL过程语言)【转】
原文http://www.cnblogs.com/stephen-liu74/archive/2012/06/06/2312759.html 一.概述: PL/pgSQL函数在第一次被调用时,其函 ...
- 存储过程C语言与PL/pgSQL实现的效率对比
为什么80%的码农都做不了架构师?>>> PL/pgSQL已经有不少优化动作,比如 for i in 1..100000 loop null; end loop; 这是可以瞬间 ...
- pgsql函数定时更新表_Postgresql PL/PGSQL 程序语言系列 1 (存储过程过时了吗,与函数)...
年龄到底是不是一个问题,35岁是一个坎, 招聘中有一些门槛这不奇怪,奇怪的是那这些信息去贩卖的人, 让整体的中国中年人活在焦虑和不安中,这绝对不是一个好人应该做的事情, 小范围的事实是可以控制的, 而 ...
- PostgreSQL 11 新特性之 PL/pgSQL 增强
文章目录 PostgreSQL 11 增加了一个新的编程对象,存储过程(PROCEDURE).它与存储函数类似,但是没有返回值.存储过程还支持事务,参考文章"PostgreSQL 11 新特 ...
- PL/pgSQL 表达式
0.表达式的实现方式: 你写的: IF expression THEN ... 将被被服务器的主SQL执行器处理成一个查询: SELECT expression sql实际上执行的是PREPARE命令 ...
- 【PostgreSQL】官网学习使用 PL/pgSQL编写造数据脚本
文章目录 1. 前言 2. 成果 3. 创建与使用类似 Java map 的数据结构 3.1 声明数组 3.2 数组赋值 3.3 数组遍历 4. 如何打印调试信息 (可以用来生成回滚语句) 5. 后记 ...
- Oracle PL/SQL语言入门
一.背景介绍 结构化查询语言(Structured Query Language,简称SQL)是用来访问关系型数据库一种通用语言,属于第四代语言(4GL),其执行特点是非过程化,即不用指明执行的具体方 ...
- PL/pgSQL的anyelement例子
http://www.postgresonline.com/journal/archives/239-The-wonders-of-Any-Element.html 定义函数 pgsql=# CREA ...
- 数据库编程入门(一)-PL/SQL快速入门
1.什么是PL/SQL 1.1 PL/SQL含义 Procedure Language / SQL 是Oracle对过程化语言的扩展,针对CRUD的过程处理语句,使得SQL语句具有过程处理能力. 1. ...
最新文章
- Material组件之MaterialApp、Scaffold、AppBar学习笔记
- java comparator 降序排序_【转】java comparator 升序、降序、倒序从源码角度理解
- 数据结构中缀表达式转后缀表达式与后缀表达式的求值实训报告_动图+源码,演示 Java 中常用数据结构执行过程及原理...
- Java多线程学习二十四:阻塞队列包含哪些常用的方法?add、offer、put 等方法的区别?
- javascript入门之私有变量
- 路面压电发电,应该有前途
- R语言绘制 tan 图像
- jtag接口定义 jtag接口的主要作用是什么
- 2011年12月13日 timeout 与 refused windows clipbrd
- 无需编码 9款优秀的数据地图可视化工具平台
- 获取企业微信code
- JAVA在线小说电子书阅读系统毕业设计 开题报告
- 窄带Vs宽带 MIMO
- Ring3与Ring0的通信
- 河北工业大学c语言寻宝游戏,计算机技术基础(c语言)课程设计 寻宝游戏.doc
- wtl单文档选项_[翻译]WTL开发者指南 第1章 WTL概述
- 图灵专访:郭霖的成长之路
- HTML将某几个文字添加下划线 并标红
- 浅谈前端的数据驱动和事件驱动
- Scaled-YOLOv4: Scaling Cross Stage Partial Network 论文翻译