人大金仓数据库PLSQL功能入门

本文介绍了PL/SQL,一种结合SQL和编程语言的数据库处理语言,涵盖了基本块语法、块分类(匿名与命名块)、存储过程、函数、包和触发器的概念。重点讲解了游标在数据处理中的作用,以及过程化语句如存储过程和函数的使用示例。
摘要由CSDN通过智能技术生成

关键字:

概念;块分类;游标;存储过程

1.概述

(1)PL/SQL是一种程序语言,叫做过程化SQL语言(Procedural Language/SQL)

(2)PL/SQL是数据库对SQL语句的扩展,在普通SQL语句的使用上增加了编程语言的特点,所以可以用来实现比较复杂的业务逻辑。

(3)它允许SQL的数据操纵语言和查询语句包含在块结构(block_structured)和代码过程语言中,使PL/SQL成为一个功能强大的事务处理语言。

(4)PL/SQL的目的是联合数据库语言和过程语言。

2.基本块语法

DECLARE
   /*
    ****声明部分**--**声明变量、常量、复杂数据类型、游标等,这部分可省略
    */
BEGIN
    /*
    ****执行部分**--PL/SQL**语句和**SQL**语句,**必需*
    */
EXCEPTION
    /*
    ****异常处理部分**--**处理运行错误,**可选*
    */
END;  --块结束标记

3.块分类

3.1匿名块:以declare或begin开始,能够动态创建和执行过程代码的pl/sql结构,每次都需要进行编译执行,不存储在数据库中

3.2命名块:具有名称的pl/sql块,编译一次后,可多次执行,存储在数据库中

存储过程:存储在数据库中的子过程,无返回值

函数:存储在数据库中的子过程,有返回值

包:可容纳多个过程和函数的一个容器

触发器:无需调用,满足需求的情况下,自动执行

匿名块举例:

file

4.基本数据类型

4.1标量类型

file

4.2用户定义类型

file

4.3%type

含义:使用列属性或变量名加上%TYPE用来标识字段类型

用来表示一个和已有表字段具有相同类型的类型

除继承字段类型外,不能继承字段的其他属性

举例:

file

4.4%rowtype

一个复合类型,叫做行变量,用来表示和一个现有的表或者视图的行类型相同的类型,一个%ROWTYPE类型变量,可存放SELECT检索结果集的一条记录

举例:

file

4.5集合类型

关联数组,嵌套表,可变数组

4.6RECORD类型

由单行多列的标量构成的复合结构,将一个或多个标量封装成一个对象

举例:

file

5.基本语句

5.1非过程化语句(各种SQL语句和游标语句)

file

举例:

file

游标:

概念:用来存储多条查询数据的一种数据结构(‘结果集’),它有一个指针,从上往下移动,从而能够遍历每条记录

分类:静态游标:使用前游标已和sql语句绑定,不能再更改,分为隐式游标和显式游标

动态游标:游标在声明时没有设定sql语句,在打开时可以对其进行修改

系统游标:系统预定义的游标sys_refcursor
游标属性类型说明
%ISOPENboolean表示该游标是否处于打开状态
%FOUNDboolean表示当前游标是否指向有效一行
%NOTFOUNDboolean与%FOUND值相反
%ROWCOUNTINT记录游标抽取过的记录行数

显示游标举例:

file

隐式游标举例:

file

5.2过程化语句

包括赋值语句、各种控制结构语句(条件控制语句、循环控制语句),着重介绍存储过程,函数,触发器等。

存储过程:相当于客户端的一段 SQL 批处理程序,无返回值,可接受多个参数,参数模式包括IN、OUT、INOUT三种,被存储在数据库中,供用户随时调用(sys_proc)

举例:

file

函数:这里所说的函数是指用户定义的函数,可有返回值,被存储在数据库中,供用户随时调用(sys_proc)

举例:

file

触发器:一种特殊的存储过程定义了一些在数据库相关事件(如:INSERT、UPDATE、 DELETE等事件)发生时应执行的功能代码。

触发器组成:

触发事件:引发触发器被触发的事件DML语句( INSERT、UPDATE、 DELETE语句对表和视图执行数据处理操作)

触发时间:即该触发器是在触发事件发生前(BEFORE)还是之后(AFTER)触发

触发操作:触发器触发后要完成的事情

触发对象:包括表、视图

触发条件:有WHEN子句指定一个逻辑表达式,只有当该表达式为TRUE时,遇到触发事件才会自动执行触发操作

触发频率:说明触发器内定义的动作被执行的次数。即语句级触发器和行级触发器

更多信息,参见https://help.kingbase.com.cn/v8/index.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值