4-5过程化SQL

4-5过程化SQL

tags:数据库

过程化SQL的块结构

基本的SQL是高度非过程化的语言,嵌入式SQL将SQL语句潜入程序设计语言,借助高级语言的空值功能实现过程花.过程化SQL是对SQL的扩展,使其增加了过程化语句功能.
过程化SQL程序的基本结构是块,所有的过程化SQL程序都是由块组成的.

过程化SQL的使用

变量定义

变量名 数据类型[[not null ] :=初始表达式]
变量名 数据类型[[not null] 初值表达式]

常量定义

常量名  数据类型 constant:=常量表达式

赋值

变量名:=表达式

条件控制语句

if condition then
    sequence_of_statements;
end if
if condition then
    sequence_of statement1;
else
    sequence_of statement2;
end if;

循环控制语句

loop
    sequence_of_statement
end loop
while condition loop
    sequence_of_statement
end loop

错误处理

如果过程化SQL在执行时出现异常,则应该让程序在产生异常的语句处停下来,根据异常的类型去执行异常处理语句.

存储过程和函数

过程化SQL块主要有两种类型,即命名块和匿名块.匿名块每次执行都要进行编译,它不能被存储到数据库中,也不能在其他过程化SQL块中调用.过程和函数是命名块,它们被编译后保存在数据库中,称为持久性存储模块.

存储过程

存储过程是由过程化SQL语句书写的过程,这个过程经过编译和优化后存储在数据库服务器中,因此称它为存储过程,使用时只要调用即可.

存储过程的优点
  1. 存储过程不像解释执行的SQL语句那样在提出操作请求时才进行语法分析和优化工作,因而运行效率较高,它提供了在服务器端解快速执行SQL语句的有效途径
  2. 存储过程降低了客户机和服务器之间的通信量.客户机上的应用程序只需要通过网络向服务器发出调用存储过程的名字和参数,就可以让关系数据库执行其中多条sql语句并进行数据处理
  3. 方便实施企业规则.
存储过程用户接口.
create or replace procedure 过程名([参数1,参数2...])
as <过程化块>
执行存储过程
call/perform procedure 过程名([参数1...]);
修改存储过程
alter procedure 过程名 compile
删除存储过程
drop procedure 过程名()

函数

函数的定义和存储过程也类似,不同之处在于函数必须指定返回的类型

函数的定义
create or replace function函数名([参数 1..]) returns<类型>
as <过程化SQL块>
函数的执行语句格式
call/select 函数名([参数1..])
修改函数
alter function 名1 rename to 名2
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值