PLsql(一)

时间:2020-01-10 16:27:56   收藏:0   阅读:101

PLSQL是专用于Oracle服务器,在SQL基础之上,添加了一些过程化控制语句,叫PLSQL过程化包括有:类型定义,判断,循环,游标,异常或例外处理

 

PLSQL强调过程

 

一、plsql语句块

PL/SQL程序都是以块(block)为基本单位,整个PL/SQL块分三部分:

技术分享图片

 

1、Plsql语句块分类

 

二、Plsql中的变量类型

1、Sql标准数据类型

技术分享图片

 

2、变量的使用

plsql中声明和执行部分要严格分开,在java中时先声明后写变量plsql中相反 先声明再写数据类型

 

变量在声明后没有赋值输出结果为空

 

例:

技术分享图片

 

3、变量的命名方法

技术分享图片

 

4、空语句

--空语句NULL  执行语句中必须写东西

技术分享图片

 

三、PLSQL中使用sql

PLSQL中使用SQL语句的几种情况:

  • DML或DCL语句:直接执行 
  • 查询语句:SELECT...INTO 或者 游标
  • DDL语句:动态SQL执行 

 

--更新100员工,工资增加1块钱 :(不能再执行块中直接输出select语句)

  • 声明变量:员工的编号
  • 声明变量:工资追加的钱数

技术分享图片

 

SELECT...INTO...的使用

语法:SELECT 列1,列2,…… INTO 变量1,变量2,……

--查询某个员工编号的姓名和工资:

  • 员工编号
  • 姓名
  • 工资

列和变量的顺序,个数必须保持一致(如果没有数据则会抛出异常,返回的结果超过一行 也会有异常)

技术分享图片

 

--查询某个员工编号的姓名,工资,入职日期,部门编号:(以上思路 我们需要声明多个变量) 

技术分享图片

 

--记录类型record(java中处理多个数据我们可以封装为对象,与之类似)

--查询某个员工编号的姓名,工资,入职日期,部门编号

技术分享图片

 

四、参照引用类型(参照已有的数据类型)

--参照引用变量类型:变量名称%TYPE

--参照引用表中的列类型:表名.列名%TYPE

--参照引用表的记录类型:表名%ROWTYPE

 

1、变量名称%TYPE

技术分享图片

 

2、表名.列名%TYPE

--查询某个员工编号的姓名,工资,入职日期,部门编号(参照类型)

技术分享图片

 

3、表名%ROWTYPE

--查询某个员工编号的姓名,工资,入职日期,部门编号(参照引用表的记录类型)

技术分享图片

 

五、PLSQL表类型(可理解为数组)

/*

TYPE 自定义类型名称 IS TABLE OF 元素类型

INDEX BY BINARY_INTEGER;

*/

技术分享图片

数据类型为varchar2(50)

下标为-7的值为tom,下标为4的值为jack,下标为9的值为rose。

--表类型的常用属性

技术分享图片

技术分享图片

--BULK COLLECT INTO:把查询结果一次性赋给一个表类型的变量,下标自动从1开始递增 

 

--查询所有的员工姓名,存储到一个表类型的变量中

技术分享图片

实例:

--查询所有的员工信息,存储到一个表类型的变量中

技术分享图片

 

 

六、DML语句返回值

--RETURNING语句:DML操作返回值赋给变量

 

RETURNING列1,列2,... INTO 变量1,变量2,...

 

--更新某个员工的工资,输出这个员工姓名,新工资

 

方式1:

技术分享图片

方式2(RETURNING):

技术分享图片

 

--插入语句中使用RETURNING语句:

技术分享图片

 

--删除语句中使用RETURNING语句

技术分享图片

 

 

七、综合应用

--DML操作返回多行数据

--更新某个部门的员工的工资,返回被更新的员工姓名,新工资

技术分享图片

 

 

 

基本和源文章一样,阅读时不理解的地方通过查阅其他资料加上了一些自己的理解。

参考网址:https://www.cnblogs.com/520gqk/p/9861161.html

原文:https://www.cnblogs.com/zhuyunlong/p/12176590.html

评论(0
© 2014 bubuko.com 版权所有 - 联系我们:wmxa8@hotmail.com
打开技术之扣,分享程序人生!