PL/SQL编程语言

这篇博客详细介绍了PL/SQL中的基本编程元素,包括使用`DECLARE`声明变量,使用`INTO`进行赋值,通过`IF`进行条件判断,运用`WHILE`和`FOR`循环,以及如何操作游标来处理多条记录。此外,还展示了如何创建存储过程并进行调用,以实现特定的数据库操作,例如为指定部门员工涨工资。
摘要由CSDN通过智能技术生成

-声明方法
–赋值操作可以用:=也可以用into查询语句赋值

declare
    i number(2) :=10;
    s varchar(10) :='小明';
    ena emp.ename%type;--引用型变量-获取数据类型
    --不知道类型就引用他的类型
    --表中的每一行记录是一个对象
    emprow emp%rowtype;--记录型变量
begin
  dbms_output.put_line(i);
  dbms_output.put_line(s);
  select ename into ena from emp where empno ='7788';
  --以查询的方式获取数据库的数据
  dbms_output.put_line(ena);
  select * into emprow from emp where empno ='7788';
  dbms_output.put_line(emprow.ename);
  dbms_output.put_line(emprow.ename||'的工作为:'||emprow.job||',工资为:'||emprow.sal);
end;

–pl/sql中的if判断

declare
   i number(3) := &a;
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;

–循环
–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;--定义一个游标cursorn 名字c1
    --把emp的值存到游标中
    emprow emp%rowtype; --定义emprow 的类型 
begin
  open c1;--打开c1
  loop
    fetch c1 into emprow;--把取值放入emprow中
    exit when c1%notfound;
    --当C1中取不到值得时候退出
     dbms_output.put_line(emprow.ename);--输出名称
   end loop;
   close c1;
end;

–给指定部门员工涨工资

declare
   cursor c2(eno emp.deptno%type)--eno 类型
   is select empno from emp where deptno=eno;
   --eno用来存放deptno
   en emp.empno%type;
begin
  open c2(10);--打开的时候赋值,10号部门
  loop
    fetch c2 into en;--存放在en
    exit when c2%notfound;
    update emp set sal =sal+100 where empno=en;
    --修改工资
    commit;--要提交
    end loop;
    close c2;
end;
--查询10号部门员工信息
select *from emp where deptno=10;

-----------------存储过程
–存储过程:就是提前编译一段pl/sql语言,放置在数据端。
–可以直接被调用,一般都是固定步骤的业务。
–给指定员工涨100块钱

create or replace procedure p1(eno emp.empno%type)
is--is或者as都可以
 --or replace加上可以修改
begin
  update emp set sal=sal+100 where empno=eno;
  commit;
  end;
  --测试P1;
  declare
  begin
    p1(7788);
  end;
  
  --
  select*from emp where empno=7788; 

在这里插入图片描述
绿色时表示测试P1正确。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值