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 字段
相关推荐
m0_466525298 分钟前
绿盟科技风云卫AI安全能力平台成果重磅发布
大数据·数据库·人工智能·安全
爱学习的阿磊1 小时前
使用Fabric自动化你的部署流程
jvm·数据库·python
枷锁—sha1 小时前
【SRC】SQL注入快速判定与应对策略(一)
网络·数据库·sql·安全·网络安全·系统安全
惜分飞1 小时前
ORA-600 kcratr_nab_less_than_odr和ORA-600 4193故障处理--惜分飞
数据库·oracle
chian-ocean1 小时前
CANN 生态进阶:利用 `profiling-tools` 优化模型性能
数据库·mysql
m0_550024631 小时前
持续集成/持续部署(CI/CD) for Python
jvm·数据库·python
AC赳赳老秦1 小时前
代码生成超越 GPT-4:DeepSeek-V4 编程任务实战与 2026 开发者效率提升指南
数据库·数据仓库·人工智能·科技·rabbitmq·memcache·deepseek
啦啦啦_99991 小时前
Redis-2-queryFormat()方法
数据库·redis·缓存
玄同7652 小时前
SQLite + LLM:大模型应用落地的轻量级数据存储方案
jvm·数据库·人工智能·python·语言模型·sqlite·知识图谱
吾日三省吾码2 小时前
别只会“加索引”了!这 3 个 PostgreSQL 反常识优化,能把性能和成本一起打下来
数据库·postgresql