对oracle中pl/sql语法的认识

对oracle中pl/sql语法的认识
(尊重劳动成果,转载请注明出处:https://blog.csdn.net/qq_39778516/article/details/84075915 consistencely的博客)
1.PL/SQL(Procedure Language/SQL)
PLSQL 是 Oracle 对 sql 语言的过程化扩展,指在 SQL 命令语言中增加了过程处理语句(如分支、循环等),使 SQL 语言具有过程处理能力。把 SQL 语言的数据操纵能力与过程语言的数据处理能力结合起来,使得 PLSQL 面向过程但比过程语言简单、高效、灵活和实用。
—pl/sql编程语言
—pl/sql编程语言是对sql语言的扩展,使得sql语言具有过程化编程的特性。
—pl/sql编程语言比一般的过程化编程语言,更加灵活高效。
—pl/sql编程语言主要用来编写存储过程和存储函数等。
1.1.1 1.pl/sql 程序语法
程序语法:
declare
说明部分 (变量说明,游标申明,例外说明 〕
begin
语句序列 (DML 语句〕…
exception
例外处理语句
End;
1.1.2 2.常量和变量定义
在程序的声明阶段可以来定义常量和变量。
 变量的基本类型就是 oracle 中的建表时字段的变量如 char, varchar2, date, number,
boolean, long
定义语法:varl char(15);
Psal number(9,2);
说明变量名、数据类型和长度后用分号结束说明语句。
常量定义:married constant boolean:=true
 引用变量
Myname emp.ename%type;
引用型变量,即 my_name 的类型与 emp 表中 ename 列的类型一样
在 sql中使用 into 来赋值。
在这里插入图片描述
 记录型变量
Emprec emp%rowtype
记录变量分量的引用
emp_rec.ename:=‘ADAMS’;
在这里插入图片描述
1.1.3 3. if 分支
语法 1:
IF 条件 THEN 语句 1;
语句 2;
END IF;
语法 2:
IF 条件 THEN 语句序列 1;
ELSE 语句序列 2;
END IF;
语法 3:
IF 条件 THEN 语句;
ELSIF 语句 THEN 语句;
ELSE 语句;
END IF;
范例 1:如果从控制台输入 1 则输出我是 1
在这里插入图片描述
在这里插入图片描述
1.1.4 4.LOOP 循环语句
语法 1:
WHILE total <= 25000 LOOP
… .
total : = total + salary;
END LOOP;
语法 2:
Loop
EXIT [when 条件];
……
End loop
语法 3:
FOR I IN 1 . . 3 LOOP
语句序列 ;
END LOOP ;
范例:使用语法 1 输出 1 到 10 的数字
在这里插入图片描述
范例:使用语法 2 输出 1 到 10 的数字
在这里插入图片描述
范例:使用语法 3 输出 1 到 10 的数字
在这里插入图片描述
2.游标
在写 java 程序中有集合的概念,那么在 pl/sql 中也会用到多条记录,这时候我们就要用到游标,游标可以存储查询返回的多条数据。
语法:
CURSOR 游标名 [ (参数名 数据类型,参数名 数据类型,…)] IS SELECT 语句;
在这里插入图片描述
游标的使用步骤:
 打开游标: open c1; (打开游标执行查询)
 取一行游标的值:fetch c1 into pjob; (取一行到变量中)
 关闭游标: close c1;(关闭游标释放资源)
 游标的结束方式 exit when c1%notfound
 注意: 上面的 pjob 必须与 emp 表中的 job 列类型一致:
定义:pjob emp.empjob%type;
范例 1:使用游标方式输出 emp 表中的员工编号和姓名
在这里插入图片描述
范例 2:按员工的工种涨工资,总裁 1000 元,经理涨 800 元其,他人员涨 400 元。
备份出一张新表为 myemp;create table myemp as select * from emp;
在这里插入图片描述
在这里插入图片描述
范例 3:写一段 PL/SQL 程序,为部门号为 10 的员工涨工资。
在这里插入图片描述

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值