Oracle(五)PL/SQL编程语言

Oracle(五)PL/SQL编程语言

---pl/sql编程语言
---pl/sql语言是对sql语言的扩展,使得sql语言具有过程化编程的特性.
---pl/sql编程语言比一般的过程化编程语言,更加灵活高效
---pl/sql编程语言主要用来编写存储过程和存储函数等.


---声明方法
declare
  i number(2) := 10;       --声明变量 用:=进行赋值
  s varchar2(10) := '笑傲';
  ena emp.ename%type;  --引用型变量,类型为emp表的ename字段的类型
  emprow emp%rowtype;  --记录型变量
begin
  dbms_output.put_line(i);
  dbms_output.put_line(s);
  select ename into ena from emp where empno = 7788; --通过查询语句为变量ena赋值
  dbms_output.put_line(ena);
  select * into emprow from emp where empno = 7788; --通过查询语句为变量emprow赋值 
  dbms_output.put_line(emprow.ename || '的工作为' || emprow.job);
end;


--pl/sql中的if判断
---输入一个小于18的数字输出未成年,
---输入大于18小于40的数字,输出中年人
---输入大于40的数字输出老年人

declare 
  i number(3) := &age;
begin
  if i<18 then
    dbms_output.put_line('未成年');
  elsif i<40 then
    dbms_output.put_line('中年人');
  else
    dbms_output.put_line('老年人');
  end if;
end;

--pl/sql中的循环
--用三种循环输出1到10
---while循环
declare
  i number(2) :=1;
begin
  while i<11 loop
    dbms_output.put_line(i);
    i := i+1;
  end loop;
end;

---exit循环
declare 
  i number(2) :=1 ;
begin
  loop
    exit when i>10;
     dbms_output.put_line(i);
    i := i+1;
  end loop;
end;

---for循环
declare 

begin
  for i in 1..10 loop
    dbms_output.put_line(i);
  end loop;
end;

---游标:可以存放多个对象,多行记录.
---输出emp表中所有员工的姓名.
declare
   cursor c1 is  select * from emp;--定义了一个游标,并把emp表中的所有数据存入游标
  emprow emp%rowtype;
begin
  open c1;--打开游标
       --遍历游标
       loop
         fetch c1 into emprow;
         exit when c1%notfound;
         dbms_output.put_line(emprow.ename);
       end loop;
  close c1;--关闭游标
end;

---给指定部门涨工资
declare 
  cursor c2(dno emp.deptno%type)   --定义一个带参数的游标
  is select empno from emp where deptno = dno;
  en emp.empno%type;
begin
  open c2(10);  --为游标的参数赋值
       loop
         fetch c2 into en; --把游标中的员工编号赋值给变量en;
         exit when c2%notfound;
         update emp set sal= sal+100 where empno=en;
       end loop;
  close c2;
end;
--查询10号部门员工信息
select * from emp where deptno = 10;



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值