31、PL/SQL简介

PL/SQL入门教程

学习目标:

1、了解PL/SQL

2、了解使用PL/SQL定义变量和基本语句块

3、了解使用PL/SQL的异常

学习过程

今天我们开始主要学习PL/SQL语言,作为一名java成员人员至少要了解一门数据库编程语言,这里我们就以oracle的PL/SQL语言来学习。这两天的课程也仅仅只是PL/SQL语言的入门,我们不是要把大家培养成为专业的Oracle的DBA,如果大家有兴趣可以自己阅读PL/SQL语言的相关书籍。

一、什么是PL/SQL语言

1、什么是PL/SQL语言

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

PL/SQL语言是一种应用开发语言,和普通的编程语言,比如java语言,它也支持变量定义,循环,条件分支处理。而且它将SQL的数据操纵功能与过程化语言数据处理功能结合起来。同时支持高级语言的块操作,与数据库核心的数据类型集成,使SQL 的程序设计效率更高。

2、PL/SQL语言的优点

通过多条SQL语句实现功能时,每条语句都需要在客户端和服务端传递,而且每条语句的执行结果也需要在网络中进行交互,占用了大量的网络带宽,消耗了大量网络传递的时间,而在网络中传输的那些结果,往往都是中间结果,而不是我们所关心的。

而使用PL/SQL程序是因为程序代码存储在数据库中,程序的分析和执行完全在数据库内部进行,用户所需要做的就是在客户端发出调用PL/SQL的执行命令,数据库接收到执行命令后,在数据库内部完成整个PL/SQL程序的执行,并将最终的执行结果返馈给用户。

二、PL/SQL块简介

PL/SQL 块是构成 PL/SQL 程序的基本单元,将逻辑上相关的声明和语句组合在一起。PL/SQL 分为三个部分,声明部分、可执行部分和异常处理部分,定义参考格式如下:

   [DECLARE

    declarations]

   BEGIN

    executable statements

    [EXCEPTION

    handlers]

   END;

三、变量和常量

PL/SQL 块中可以使用变量和常量,在声明部分声明,使用前必须先声明,声明时必须指定数据类型,每行声明一个标识符,在可执行部分的 SQL语句和过程语句中使用,声明变量和常量的语法:

identifier [CONSTANT] datatype [NOT NULL]  [:= | DEFAULT expr];

给变量赋值有两种方法:

使用赋值语句 := 

使用 SELECT INTO 语句。

示例:

declare  --声明变量

   wid int:=100;

    hei number(7,2):=12.3;

   pass varchar2(100);

   username varchar2(100);--获得用户输入

begin

end;

用于引用数据库列的数据类型,以及表示表中一行的记录类型 l属性类型有两种:

  • %TYPE  -  引用变量和数据库列的数据类型。
  • %ROWTYPE  -  提供表示表中一行的记录类型。

使用属性类型的优点:不需要知道被引用的表列的具体类型,如果被引用对象的数据类型发生改变,PL/SQL 变量的数据类型也随之改变。

示例:

--由用户输入商品的id,打印出商品的名称 商品价格

declare

  gname GOODS.GOODS_NAME%TYPE;--参考表的属性的类型

  gcash GOODS.CASH%TYPE;

  gid GOODS.GOODS_ID%TYPE ;

begin

   gid:=&gd;

   select GOODS_NAME,CASH into gname,gcash from GOODS where GOODS_ID=gid;

   dbms_output.put_line(gname||':'||gcash);

end;

四、异常模块

在运行程序时出现的错误叫做异常,发生异常后,语句将停止执行,控制权转移到 PL/SQL 块的异常处理部分,异常有两种类型:

  • 预定义异常 -  当 PL/SQL 程序违反 Oracle 规则或超越系统限制时隐式引发。
  • 用户定义异常  -  用户可以在 PL/SQL 块的声明部分定义异常,自定义的异常通过 RAISE 语句显式引发。

示例:

declare  --声明变量

   wid int:=100;

    hei number(7,2):=12.3;

   pass varchar2(100);

   username varchar2(100);--获得用户输入

begin

    dbms_output.put_line(username);

    pass:='abc';

    dbms_output.put_line(pass);

    dbms_output.put_line('area:'||(wid*hei));--字符串的链接

    exception

       when others then

            dbms_output.put_line('error');

end;

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值