玩转oracle之进阶PLSQL基本语法

PLSQL语法

概念

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

语法

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

--开启打印
set serveroutput on ;

declare
	--变量,常量 ,光标(游标),例外(自定义异常)
begin 
	-- exception 异常处理
end;

定义普通变量

--开启打印
set serveroutput on ;

declare
--变量,常量 ,光标(游标),例外(自定义异常)

	psex char(3) := '男';
	--pname varchar2(10) ;
    pname emp.ename%type;--引用型它的类型和emp.ename保持一致,推荐使用
begin 
	select ename into pname from emp where empno = 7499;
    dbms_output.put_line('hell world'||psex||pname);--oracle用||拼接
end;

引用型变量

  • 引用型变量:推荐使用

  • 记录型变量:java对象,可以用于同时保存多个变量值

    Person per = new Person(1,"zs",28,11.......)
    
    declare
    --变量,常量 ,光标(游标),例外(自定义异常)
    	emp_info emp%rowtype;
    begin 
    	select * into emp_info from emp where empno =7788;
        dbms_output.put_line(emp_info.empno||'======='||emp_info.ename||'======='||emp_info.job);--oracle用||拼接
    end;
    

    选择结构

    • 语法: if 条件 then end if;

    • 语法:if 条件 then else end if

    • 语法:if 条件 then elsif 条件 then else end if

    declare
        pnum number :=2;
        
    begin 
    	if pnum =1 then dbms_output.put_line('一');
        elsif pnum =2 then dbms_output.put_line('二');
        else dbms_output.put_line('其他');
        end if;
    end;
    

    循环结构

    • 语法:while 条件 loop … end loop;

    • loop…exit when i>5;end loop;

    • for i in 1…10;end loop;

    --for循环
    set serveroutput on;
    declare
    begin
        for x in 1 .. 5
            loop
                dbms_output.put_line(x);
            end loop;
        
    end;
    
    --do while
    /*
    	java例
    	int sum = 0;
    	int i =1;
    	do{
    		sum +=i;
    		i++;
    	}while(i<=5)
    */
    set serveroutput on;
    declare
        pnum number :=1;
        psum number :=0;
    begin
        loop
            exit when pnum>5;
            psum := psum +pnum;--sum+=i
            pnum := pnum+1;--i++
        end loop;
        dbms_output.put_line(psum); 
    end;
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值