PL-SQL编程

PL/SQL介绍:

  • PL/SQL是ORACLE对标准数据库语言的扩展

  • PL/SQL 是过程语言(Procedural Language)与结构化查询语言(SQL)结合而成的编程语言

  • PL/SQL 是对 SQL 的扩展 支持多种数据类型,如大对象和集合类型,可使用条件和循环等控制结构

  • 可用于创建存储过程、触发器和程序包,给SQL语句的执行添加程序逻辑

  • 与 Oracle 服务器和 Oracle 工具紧密集成,具备可移植性、灵活性和安全性

  • 支持 SQL,在 PL/SQL 中可以使用:   

                                        数据操纵命令

                                        事务控制命令

                                        游标控制 SQL 函数和 SQL 运算符

  • 支持面向对象编程 (OOP) 可移植性,可运行在任何操作系统和平台上的Oralce 数据库 更佳的性能,PL/SQL 经过编译执行

PL/SQL组成:

         声明部分、可执行部分和异常处理部分

Oracle PL/SQL基本语法:


        declare(可选,声明变量或光标)
        begin(必需,从此处开始执⾏语句)
        exception(异常)

         end;(必需,从此处结束分号不能省略)

PL/SQL的两种赋值⽅式:


        1. :=
        2. into

PL/SQL 支持的流程控制结构:

条件控制

  •           IF 语句

  •           CASE 语句

循环控制

  •           LOOP 循环

  •           WHILE 循环

  •           FOR 循环

顺序控制

  •           GOTO 语句

  •           NULL 语句

IF语句

  根据条件执行一系列语句,有三种形式:IF-THEN、IF-THEN-ELSE 和 IF-THEN-ELSIF

例1:

-- 统计出emp的平均工资,如果>2000,显示公司财政状况良好,<2000,公司财政状况堪忧

declare
   avgsal emp.sal%type;


begin
   select avg(sal) into avgsal from emp;
   dbms_output.put_line(avgsal);
   
   if avgsal>2000 
   then 
     dbms_output.put_line('公司财政状况良好');
   
   elsif avgsal<2000
   then
     dbms_output.put_line('公司财政状况堪忧'); 
   end if;
end;

例2:

-- 查询出7839这个员工的工资
--<2000:收入可怜
--<3000: 收入还行
--<4000:收入较高
-->4000:收入很高了

declare
         hassal emp.sal%type;

begin
         select sal into hassal from emp where empno='7839';
              dbms_output.put_line(hassal);
         if hassal < 2000
         then
             dbms_output.put_line('收入可怜');
         elsif hassal <3000
         then 
             dbms_output.put_line('收入还行');
         elsif hassal < 4000
         then
             dbms_output.put_line('收入较高');
         else
             dbms_output.put_line('收入很高了');
         end if;
         
end;

循环语句

1.loop循环

例:

--0~100累加法

declare
         i int :=1;
         num1 int :=0; 
begin
         loop
              exit when i>100;
              num1 :=num1+i;
              i := i+1;
          end loop;
          dbms_output.put_line(num1);
end;
     

 2.while循环

例:

declare 
      i int:=10;
      s int:=0;
begin
      DBMS_OUTPUT.PUT_LINE('循环开始:');
      while i<20
      loop
          s:=s+i;
          DBMS_OUTPUT.PUT_LINE('进入循环:'||i);
          i:=i+1;
      end loop;
      DBMS_OUTPUT.PUT_LINE('循环结束:'||s);
end;

3.for循环 

例:

declare 
    s int:=0;
begin
    DBMS_OUTPUT.PUT_LINE('循环开始:');
    for i in 10..20     
    loop
       s:=s+i;
       DBMS_OUTPUT.PUT_LINE('进入循环:'||i);
    end loop;
    DBMS_OUTPUT.PUT_LINE('循环结束:'||s);
end;


--不需要事先定义循环变量i,自动进入循环,i为循环的边界值10,循环到20
--循环体中i不需要累加,自动(只能)累加1,不能手动赋值

目录

PL/SQL介绍:

PL/SQL组成:

Oracle PL/SQL基本语法:

PL/SQL的两种赋值⽅式:

PL/SQL 支持的流程控制结构:

条件控制

循环控制

顺序控制

IF语句

循环语句

1.loop循环

 2.while循环

3.for循环 

跳转控制 


DECLARE
  	 sal int;
BEGIN
  	 sal :=&sal;  - - 接受用户输入
  	if sal < 100 then
		goto first;
	elsif sal < 200 then
		goto second;
	else
		goto third;
	end if;
  	<<FIRST>>   --定义一个名称为FIRST的节
            		 DBMS_OUTPUT.PUT_LINE('FIRST:'||sal);
             		RETURN;
  	<<SECOND>>
             		DBMS_OUTPUT.PUT_LINE('SECOND:'|| sal);
             		RETURN;
 	<<THIRD>>
            		 NULL;
END;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值