PLSQL数据库

目录

什么是PLSQL数据库

PL数据库的实现方法

PL数据库的基本语法

1.作用

2.语法

3.赋值输出

4.引用

5.异常处理

6.if 判断

7.loop循环

8.while循环

9.for循环

10.游标

11.参数游标

12.索引

13.分区表


什么是PLSQL数据库

        PL/SQL(Procedure  Language/SQL)是 Oracle 对 sql 语言的过程化扩展,指 在 SQL 命令语言中增加了过程处理语句(如分支、循环等),使 SQL 语言具有 过程处理能力。把 SQL 语言的数据操纵能力与过程语言的数据处理能力结合起来,使得 PLSQL 面向过程但比过程语言简单、高效、灵活和实用。

PL数据库的实现方法

1.首先,启动VMvare虚拟机以启动PLSQL Developer,连接Oracle数据库

2.利用已登录的管理员用户创建新用户(详见之前章节)

3.在DataGrip中编写相应代码,利用虚拟机PLSQL运行,语法见本章下

PL数据库的基本语法

1.作用

        plsql也可以实现复杂的业务逻辑
        为不直接使用编程语言 而是学习plsql
        plsql会比直接使用 编程语言 速度更快

2.语法
        [declare-- 声明变量 (变量名 表名.字段名%type;  引用变量)]begin -- PL代码块-- 代码逻辑[exception-- 异常处理]
end;
3.赋值输出
        a:=1; -- 把1赋值给aselect 表中字段 into 变量名 from 表名; -- 变量赋值dbms_output.put_line('单价:'||变量名); -- 输出
4.引用
        声明变量 (变量名 表名.字段名%type;  引用变量)声明行变量(变量名 表名%rowtype;  引用一行变量)beginselect * into 变量名 from 表名 where id = 1;变量名=表名.字段名···(赋值编辑)end;
5.异常处理
-- 引用行变量where不可筛选多行或不存在的id
exceptionwhen 错误类型 then输出;
-- 处理
exceptionwhen no_data_found thendbms_output.put_line('数据找不到!');when too_many_rows thendbms_output.put_line('数据太多!');when other thendbms_output.put_line('异常:'||sqlcode||sqlerrm);
6.if 判断
-- if 条件 then
--   业务逻辑
-- elsif 条件 then
--   业务逻辑
-- else
--   业务逻辑
-- end if;
7.loop循环
loop/end loop;
loopdbms_output.put_line(···);变量=变量+1;exit when 变量>100;
end loop;
8.while循环
while 条件判断  -- 符合条件才能进入循环
loopdbms_output.put_line(···);变量=变量+1;exit when 变量>100;
end loop;
9.for循环
declare
beginfor 变量 in 起始值..终止值loopdbms_output.put_line(···);end loop;
end;
10.游标

游标是系统为用户开设的一个数据缓冲区,存放 SQL 语句的执行结果。

我们可以把游标理解为 PL/SQL 中的结果集。

declare行变量 表名%rowtype;
-- 记录数据获取的位置,存储每一行数据cursor 游标名称 is sql语句;select * from 表名 where ownertypeid=1;
begin
-- 使用游标语法open 游标名称 -- 打开游标loop业务逻辑(fetch 游标名 into 行变量)输出 dbms_output.put_line('价格:'||表名.字段名);exit when 游标名称%notfound业务逻辑end loop;
close 游标名称; -- 关闭游标
11.参数游标
declarecursor 游标名(参数名 number) is select *from 表名 where id列名 = 参数名;
beginfor i in 游标名(1)loopdbms_output.put_line('价格:'||i.列名||'吨位:'||i.列名||'吨位:'||i.列名);end loop;
end;
12.索引
-- 加快查询速度
create index 索引名称  on 表名(列名);
13.分区表
范围分区(range,用时间分区)
HASH 分区(散列分区,不连续)
列表分区
复合分区(范围+HASH)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/640102.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

mysql面试题八(SQL语句)

目录 1.SQL 基本组成部分 常用操作示例 创建表 插入数据 查询数据 更新数据 删除数据 创建索引 授予用户权限 2.常见的聚合查询 1. 计数(COUNT) 2. 求和(SUM) 3. 平均值(AVG) 4. 最大值&…

全新商业模式!链动3+1模式 无限链动收益!

链动31模式解析 的链动31模式,是一种精心设计的运营模式,它针对运营中的脱发问题提供了有效的解决方案。然而,这一模式并非完美无缺,它也有其固有的劣势。接下来,我们将通过详细的示例,对这一模式进行深入…

CVE-2024-3159:Out of bounds memory access in V8

前言 这个洞在今年的 Pwn2Own 上被利用,目前还没有公开报告。该漏洞可以说是 CVE-2023-4427 漏洞未正确修复,其原理和利用跟 CVE-2023-4427 没有本质区别,CVE-2023-4427 之前分析过,所以这里不作过多说明,仅仅做记录 …

SpringAOP从入门到源码分析大全(四)SpringAOP的源码分析

文章目录 系列文档索引六、EnableAspectJAutoProxy源码分析1、AnnotationAwareAspectJAutoProxyCreator源码(1)wrapIfNecessary方法(2)createProxy 2、getAdvicesAndAdvisorsForBean查找所有Advisor(1)find…

爬虫机试题-爬取新闻网站

之前投简历时遇到了这样的一个笔试。本以为会是数据结构算法之类的没想到直接发了一个word直接提需求,感觉挺有意思就写了这篇文章,感兴趣的朋友可以看看。 拿到urllist 通过分析页面结构我们得以知道,这个页面本身没有新闻信息,是…

芒果超媒的“乘风破浪”,差了一点市场海浪的反馈

4月21日晚间,芒果超媒发布了2023年度&2024一季度报告。 芒果超媒2023年实现营业收入146.28亿元,同比增长4.66%;净利润35.56亿元,同比增长90.73%;基本每股收益1.90元。公司拟每10股派发现金红利1.8元。2024年第一季…

路由过滤,策略实验

1配置ip [r1]int g0/0/0 [r1-GigabitEthernet0/0/0]ip add 100.1.1.1 24 [r1-GigabitEthernet0/0/0]int l0 [r1-LoopBack0]ip add 192.168.0.1 32 [r1-LoopBack0]int l1 [r1-LoopBack1]ip add 192.168.1.1 32 [r2]int g0/0/0 [r2-GigabitEthernet0/0/0]ip add 100.1.1.2 24 [r…

【python】直接在python3下安装 jupyter notebook,以及处理安装报错,启动不了问题

目录 问题: 1 先做准备,查看环境 1.1 先看python3 和pip ,以及查看是否有 juypter 1.2 开始安装 1.3 安装完成后得到警告和报错 2 处理安装的报错问题 2.1 网上有说是因为 pip 自身需要更新,更新之 2.1.1 更新pip 2.1.…

牛客NC238 加起来和为目标值的组合【中等 DFS C++、Java、Go、PHP】

题目 题目链接: https://www.nowcoder.com/practice/172e6420abf84c11840ed6b36a48f8cd 思路 本题是组合问题,相同元素不同排列仍然看作一个结果。 穷经所有的可能子集,若和等于target,加入最终结果集合。 给nums排序是为了方便…

基于SpringBoot的宠物领养网站管理系统

基于SpringBootVue的宠物领养网站管理系统的设计与实现~ 开发语言:Java数据库:MySQL技术:SpringBootMyBatis工具:IDEA/Ecilpse、Navicat、Maven 系统展示 主页 宠物领养 宠物救助站 宠物论坛 登录界面 管理员界面 摘要 基于Spr…

恶心透了的小日子,害人终害己,国货呼吁关注抵制日本核废水排放

​|日本排放核废水 日本政府决定将福岛第一核电站的核污染水经过处理后排放入海,这一决定引发了多方面的担忧和反对,特别是在周边国家,包括中国和韩国。关于日本排放核污染水这一新闻事件,我们必须首先认识到,核能利用…

ThingsBoard教程(二十九):详细讲解在tb平台下 http协议下的客户端rpc,服务的rpc的使用

客户端rpc 先来说一下简单的客户端rpc, 客户端发起rpc请求,只需要使用post方法调用该接口即可以 http://host:port/api/v1/$ACCESS_TOKEN/rpc请求路径中间的参数 ACCESS_TOKEN 必须是设备的访问令牌。 请求携带的参数如下,二个参数method和params {"method": …