暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

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

数据猿 2023-09-22
568

关键字:

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

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
游标属性 类型 说明
%ISOPEN boolean 表示该游标是否处于打开状态
%FOUND boolean 表示当前游标是否指向有效一行
%NOTFOUND boolean 与%FOUND值相反
%ROWCOUNT INT 记录游标抽取过的记录行数

显示游标举例:

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

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论