plsql 百度百科

本文深入解析PL/SQL,一种在Oracle数据库中扩展SQL的编程语言,结合编程细节,讨论了其块结构、控制结构、变量声明、基本命令及与SQL的关系。了解PL/SQL如何处理复杂业务逻辑,提升数据库管理效率。
摘要由CSDN通过智能技术生成

PL/SQL也是一种程序语言,叫做过程化SQL语言(Procedural Language/SQL)。PL/SQL是Oracle数据库对SQL语句的扩展。在普通SQL语句的使用上增加了编程语言的特点,所以PL/SQL把数据操作和查询语句组织在PL/SQL代码的过程性单元中,通过逻辑判断、循环等操作实现复杂的功能或者计算。


PL/SQL(Procedural Language/SQL)是一种过程化语言,属于第三代语言,它与C、C++、Java等语言一样关注于处理细节,可以用来实现比较复杂的业务逻辑。它允许SQL的数据操纵语言和查询语句包含在块结构(block_structured)和代码过程语言中,使PL/SQL成为一个功能强大的事务处理语言。在甲骨文数据库管理方面,PL/SQL是对结构化查询语言(SQL)的过程语言扩展。PL/SQL的目的是联合数据库语言和过程语言。PL/SQL的基本单位叫做块,由三个部分组成:一个声明部分,一个执行部分和异常处理部分。

因为PL/SQL允许混合SQL声明和过程结构,因此可以在将声明发送到甲骨文系统去执行之前使用PL/SQL区段和副程序来组合SQL声明,没有PL/SQL,甲骨文需要就每次处理SQL声明,在网络环境中,这将影响交通流量,而且增加响应时间。PL/SQL区段只被编译一次并且以可运行的形式储存,以降低响应时间。


结构化查询语言(Structured Query Language,简称SQL)是用来访问关系型数据库一种通用语言,属于第四代语言(4GL),其执行特点是非过程化,即不用指明执行的具体方法和途径,而是简单地调用相应语句来直接取得结果即可。显然,这种不关注任何实现细节的语言对于开发者来说有着极大的便利。然而,有些复杂的业务流程要求相应的程序来描述,这种情况下4GL就有些无能为力了。PL/SQL的出现正是为了解决这一问题,它是一种过程化语言,属于第三代语言,它与C、 C++、Java等语言一样关注于处理细节,可以用来实现比较复杂的业务逻辑。


编程基础知识

编辑 语音

程序结构

PL/SQL程序都是以块(block)为基本单位,整个PL/SQL块分三部分:声明部分(用declare开头)、执行部分(以 begin开头)和异常处理部分(以exception开头)。其中执行部分是必须的,其他两个部分可选。无论PL/SQL程序段的代码量有多大,其基本结构就是由这三部分组成。

模板如下:

declare

/* 声明区(可选):定义类型和变量、声明变量、声明函数、游标 */

begin

/* 执行区(必须的):执行pl/sql语句或者sql语句 */

exception

/* 异常处理区(可选):处理错误的 */

end;

如下所示为一段完整的PL/SQL块:

/*声明部分,以declare开头*/

declare v_id integer;

v_name varchar(20);

cursor c_emp is select * from employee where emp_id=3;

/*执行部分,以begin开头*/

begin  open c_emp; //打开游标

loop

fetch c_emp into v_id,v_name;   //从游标取数据

exit when c_emp%notfound ;

end loop ;

close c_emp;    //关闭游标

dbms_output.PUT_LINE(v_name);

/*异常处理部分,以exception开始*/

exception

when no_data_found then

dbms_output.PUT_LINE('没有数据');

end ;

控制结构

PL/SQL程序段中有三种程序结构:条件结构、循环结构顺序结构

1) 条件结构

与其它语言完全类似,语法结构如下:

if condition then

statement1

else

statement2

end if ;

2)循环结构

这一结构与其他语言不太一样,在PL/SQL程序中有三种循环结构:

a. loop … end loop;

b. while condition loop … end loop;

c. for variable in low_bound . .upper_bound loop … end loop;

其中的“…”代表循环体。

3)顺序结构

实际就是goto的运用,不过从程序控制的角度来看,尽量少用goto可以使得程序结构更加的清晰。

变量声明与赋值

PL/SQL主要用于数据库编程,所以其所有的数据类型跟Oracle数据库里的字段类型是一一对应的,大体分为数字型、布尔型、字符型和日期型。这里简单介绍两种常用数据类型:number、varchar2。

number

用来存储整数和浮点数。范围为1e130~10e125,其使用语法为:

number[(precision, scale)]

其中(precision, scale)是可选的,precision表示所有数字的个数,scale表示小数点右边数字的个数。

varchar2

用来存储变长的字符串,其使用语法为:

varchar2[(size)]

其中size为可选,表示该字符串所能存储的最大长度。

在PL/SQL中声明变量与其他语言不太一样,它采用从右往左的方式声明,比如声明一个number类型的变量v_id,那其形式应为:

v_id number;

如果给上面的v_id变量赋值,不能用“=”,应该用“:=”,即形式为:

v_id :=5;

基本命令

PL/SQL使用的数据库操作语言还是基于SQL的,所以熟悉SQL是进行PL/SQL编程的基础。SQL语言的分类情况大致如下:

1.数据定义语言(DDL),包括CREATE(创建)命令、ALTER(修改)命令、DROP(删除)命令等。

2. 数据操纵语言(DML),包括INSERT(插入)命令、UPDATE(更新)命令、DELETE(删除)命令、SELECT …FOR UPDATE(查询)等。

3. 数据查询语言(DQL),包括基本查询语句、Order By子句、Group By子句等。

4. 事务控制语言(TCL),包括COMMIT(提交)命令、SAVEPOINT(保存点)命令、ROLLBACK(回滚)命令。

5. 数据控制语言(DCL),GRANT(授权)命令、REVOKE(撤销)命令。

具体的语法结构可以参阅其他关于SQL语言的资料,这里不再赘述。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值