大型数据库PL/SQL高级编程
2017-06-29 16:47
441 查看
PL/SQL高级编程 实验目的: 1、掌握PL/SQL的数据结构和编程结构,掌握应用PL/SQL编写简单程序的方法 2、理解存储过程的概念,掌握编写存储过程的方法 3、理解函数的概念,掌握编写存储过程的方法 实验内容: 一、PL/SQL编程基础 1、pl/sql的组成:声明块、执行块、异常处理块 2、编制代码实现1+2+...+100的计算 declare n int; result int; begin n:=0; result:=0; while n<=100 loop result:=result+n; n:=n+1; end loop; dbms_output.put_line('结果是'||result); end; 二、存储过程编程 1、存储过程的概念 procedure 存储过程,存储在数据库中的不带返回值的命名PL/sql程序块,(可以反复使用复杂操作,并提高执行效率) 2、存储过程的语法 create or replace procedure procedureName(parm parmType) as local varible defination begin procedure body; end; 3、编写求u1+2+...+100的结果并显示的存储过程 create or replace procedure sp_calcSum as begin ... end; 4、编写求1+2+...+n的带参数的存储过程 create or replace procedure sp_calcSum(pEndNumber int) as begin ... end; 三、函数编程 1、函数的概念 function函数,存储在数据库中的带返回值的命名pl/sql程序块 2、函数的语法 create or replace function functionName(parm parmType) return resultType as local varible defination begin function body return result; end; 3、编写求1+2+...+100的函数 create or replace function f_calcSum() return int as begin ... return result; end;
4、编写求1+2+...+n的函数 create or replace function f_calcSum(pEndNumber int) return int as begin .... return result; end; 四、存储过程与函数的应用 1、编写将指定部门号的所有员工薪水增加指定值的存储过程,并调用此存储过程将30号部门的薪水增加1000 编写存储过程 sp_AlterSalByDeptno(pSalDelta,pDeptno) 调用存储过程将30号部门的薪水增加1000元 execute sp_AlterSalByDeptno(1000,30) 与使用update语句进行对比 2、编写求指定部门号的所有员工平均薪水的函数,并调用此函数计算30号部门的平均薪水 编写函数 f_GetAvgSalByDeptno(pDeptno) 调用函数求出30号部门的平均薪水并显示tempSal:=f_GetAvgSalByDeptno(30) 与使用select语句进行对比 3、结论 需要频繁重复的数据库操作通常会编制专门的存储过程或函数 存储过程应用: 先创建存储过程(编写sql语句,将编写的代码编译后保存在数据库中,同时存储了编写的plsql语句和对应的编译后的机器操作指令),再使用存储过程(直接调用机器操作指令) sql语句:update emp set sal=sal+1000 where deptno=30;先检查sql是否正确,再转换成机器操作指令,最后执行机器操作 对比: while deptno in(10,20,30) loop execute alterSalBydeptno(delta,target); ---1 每次只需直接执行 update emp set sal=sal+delta where deptno=target; ---2 每次执行都要检查、转换、执行 DeptnoMoveNext(); end loop 可以在此段代码执行前后分别获取当前时间,检查其两种方式所用时间的差别
相关文章推荐
- Oracle数据库编程:PL/SQL编程基础
- PL/SQL编程(高级特性)
- PL/SQL高级编程
- Oracel数据库PL/SQL编程
- 数据库表某几列的列名是中文的,Java程序里面编程的SQL语句和Pl/Sql里面写法差异
- Oracle PL/SQL 高级编程
- Oracle数据库编程:使用PL/SQL编写触发器
- Oracle(27)pl/sql编程 数据库管理员及对数据库的备份和恢复
- PL/SQL编程(高级特性)
- Oracle数据库编程:使用PL/SQL编写触发器
- 【数据库学习笔记】Oracle_03_PL/SQL深入:游标编程,自定义异常
- 数据库编程实战:Oracle PL/SQL入门之案例实践
- Oracle PL/SQL 高级编程
- 数据库编程入门(一)-PL/SQL快速入门
- 关于PL/SQL连接Orcale数据库
- oracle(3)pl/sql编程基础 存储过程、函数、包、触发器
- pl/sql入门第八章--数据库游标
- T_SQL 语句编程与高级查询
- 出现的问题: A、使用命令行无法登录oracle或者显示ORA-01109:数据库未打开; B、使用PL/SQL登录出现 ORA-01033:ORACLE initialization or
- CentOS7 Mini安装Oracle后用PL/SQL连接数据库(图形化安装)