🩷🩷🩷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 字段