Oracle知识点Day05

🩷🩷🩷PLSQL

一、为什么要使用PLSQL

①复杂的业务逻辑,可以使用编程语言实现,SQL无法实现

②PLSQL也可以实现复杂的业务逻辑

【为什么不直接使用编程语言,而使用PLSQL】

答:PLSQL会比直接使用编程语言更快,优化速度

二、定义

是Oracle对SQL语言的过程化扩展,可以在SQL里面进行编程

三、语法结构

declare ①-- 声明变量 变量名,变量类型(代码写完,以;为结尾)

【PL代码块】

begin

②-- 代码逻辑 [exception --异常处理 ]

end;

四、PLSQL语法

:= 是赋值

= 是判断

|| 拼接

dbms_output.put_line((字符串类型)) 输出一行(自带默认换行 )

dbms_output.put_line()输出一行

五、select方法插入值

通过select into 方法赋值变量 ------可以获取数据库里面的值

  • 先在declear里面定义变量 然后begin里面用select 插入数据

  • select 列名 into 变量名 from 表名 where 条件

  • 注意select后的字段数量和变量数量要保持一致(类型)

  • select into 这种方法只能获取一行数据

六、引用变量

定义:

从属于一个表 表里面的某个字段的类型进行引用

格式:

变量名 表名.字段名%type

七、行变量

定义:

表里面的行类型进行引用

格式:

  • 存储的是一行数据

  • 变量名 表名%type

  • 在declear中进行表引用 然后在begin中查询表中一行数据,从而就可以用表名.字段使用

八、异常处理

为什么使用异常处理???

  • 程序出现bug需要进行调整

  • 不希望程序直接崩溃

  • 给出bug原因

语法格式:exception -- 处理 未找到数据异常

no_data_found when then

when no_data_found then

dbms_output.put_line('数据找不到')

when too_many_rows then

dbms_output.put_line('数据太多')

when others then

dbms_output.put_line('异常:'||sqlcode||sqlerrm)

九、if语法

  • if 条件 then 业务逻辑 elsif 条件 then 业务逻辑 else 业务逻辑 end if

十、循环

1、无条件循环

  • 在begin中------------ loop --循环语句 exit when 语句 end loop;

2、while循环

  • while 条件 loop 业务逻辑 end loop;

3、for循环

  • for 变量 in 起始值..终止值 loop 业务逻辑 end loop;

十一、游标

作用:

  • 记录数据获取的位置

  • 存储每一行数据

语法:

  • 创建游标

    • cursor 游标名称 is SQL语句;
  • 使用游标语法

    • open 游标名称
  • loop 业务逻辑

  • fetch 游标名称 into 变量 exit when 游标名称%notfound 业务逻辑

  • end loop;

  • 关闭游标 close 游标名称

十二、索引

作用:

  • 加快查询速度

  • 索引是一个特殊的文件(字典的目录)

语法:

  • create index 索引名 on 字段
相关推荐
学地理的小胖砸1 小时前
【Python 操作 MySQL 数据库】
数据库·python·mysql
dddaidai1232 小时前
Redis解析
数据库·redis·缓存
数据库幼崽2 小时前
MySQL 8.0 OCP 1Z0-908 121-130题
数据库·mysql·ocp
Amctwd2 小时前
【SQL】如何在 SQL 中统计结构化字符串的特征频率
数据库·sql
betazhou3 小时前
基于Linux环境实现Oracle goldengate远程抽取MySQL同步数据到MySQL
linux·数据库·mysql·oracle·ogg
lyrhhhhhhhh3 小时前
Spring 框架 JDBC 模板技术详解
java·数据库·spring
喝醉的小喵4 小时前
【mysql】并发 Insert 的死锁问题 第二弹
数据库·后端·mysql·死锁
付出不多5 小时前
Linux——mysql主从复制与读写分离
数据库·mysql
初次见面我叫泰隆5 小时前
MySQL——1、数据库基础
数据库·adb
Chasing__Dreams5 小时前
Redis--基础知识点--26--过期删除策略 与 淘汰策略
数据库·redis·缓存