PL/SQL程序设计基础语法详解

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PL/SQL程序设计基础语法详解相关的知识,希望对你有一定的参考价值。

一.什么是PL/SQL(Procedure Language/SQL)
概念:PLSQL是Oracle对sql语言的过程化扩展
指在SQL命令语言中增加了过程处理语句(如分支、循环等),使SQL语言具有过程处理能力。
PL/SQL的结构:

declare
      说明部分    (变量说明,光标申明,例外说明 〕
begin
      语句序列   (DML语句〕… 
exception
      例外处理语句   
End;

简单的PL/SQL程序
如果是在命令行中需要使用 set serveroutput on先打开显示

declare
 --声明变量
begin
-- 程序执行的主体
dbms_output.put_line(‘Hello World‘); --输出语句
end;


二.PL/SQL程序的基本语法
1.常量和变量
技术分享

2.变量类型
技术分享

3.引用型变量和记录型变量的使用

引用型变量的使用

-- 查询并打印7839的姓名和薪水
declare 
  -- 定义姓名和薪水的变量
  pname emp.ename%type; --即引用emp表中ename列的类型
  psal emp.sal%type;   --即引用emp表中sal列的类型

begin
  -- 查询语句 赋值的两种方式 1.:=   2. into关键字
  select ename,sal into pname,psal from emp where empno=‘7839‘;
  dbms_output.put_line(pname ||‘的薪水是‘|| psal);

end;

记录型变量

-- 查询并打印7839的姓名和薪水
declare 
  -- 定义记录型变量,代表一行
 dec_emp emp%rowtype; --即记录了emp表中一行的类型,使用的时候直接.调用
begin
  -- 查询语句 
  select * into dec_emp from emp where empno=‘7839‘;
  --使用的时候 dec_emp.sal   变量名.列名 
  dbms_output.put_line(dec_emp.ename ||‘的薪水是‘|| dec_emp.sal);
end;

3.if语句
三种格式:

格式一:
      IF   条件  THEN 语句1;
       语句2;
       END IF;
格式二:
 IF  条件  THEN  语句序列1;   
    ESLE   语句序列 2END   IF
格式三(主要使用这种):
   IF   条件  THEN 语句;
   ELSIF  条件  THEN  语句;
   ELSE    语句;
   END  IF;
-- 判断用户键盘上输入的数字是几

-- 接收键盘的输入
-- num是地址值,在地址值上保存了输入的数字
accept num prompt ‘请输入一个数字‘;
declare 
  -- 定义变量保存数字
  pnum number := #

begin
  if pnum = 0 then dbms_output.put_line(‘您输入的数字是0‘);
    elsif pnum = 1 then dbms_output.put_line(‘您输入的数字是1‘);
    elsif pnum = 2 then dbms_output.put_line(‘您输入的数字是2‘);
    else dbms_output.put_line(‘其他数字‘);
  end if; 
end;

4.循环语句

格式一:
WHILE   条件
LOOP
语句序列;
END  LOOP;
-----------------------------------------------
例如:
WHILE  total  <= 25000  
LOOP
.. .
total : = total + salary;
END  LOOP;
格式二(主要使用这种,EXIT的地方容易理解):
Loop
EXIT [when   条件];
语句序列
End loop
格式三:
FOR   I   IN   1 . . 3    
LOOP
语句序列 ;
END    LOOP ; 
-- 打印1~10的数字
declare 
  pnum number := 1;
begin
  loop
    --循环
    --退出条件
    exit when pnum > 10;  
    dbms_output.put_line(pnum);
    -- 加1
    pnum := pnum + 1;
  end loop;
end;










以上是关于PL/SQL程序设计基础语法详解的主要内容,如果未能解决你的问题,请参考以下文章

PL/SQL编程基础

PL/SQL函数和过程的创建和调用的基础语法

PL/SQL的基本语法

PL/SQL 过程语法

PL/SQL学习笔记之基本块格式与语法

PL/SQL 游标的使用详解