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.mzph.cn/diannao/3331.shtml

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

相关文章

微前端通信机制及其实现

微前端通信机制是指在微前端架构中,不同的微应用之间进行通信的方式和机制。微前端通信机制的实现可以通过以下几种方式: 事件总线(Event Bus):微前端架构中的主应用可以创建一个事件总线,用于发布和订阅事…

【C++航海王:追寻罗杰的编程之路】C++11(二)

目录 C11(上) 1 -> STL中的一些变化 2 -> 右值引用和移动语义 2.1 -> 左值引用和右值引用 2.2 -> 左值引用与右值引用比较 2.3 -> 右值引用使用场景与意义 2.4 -> 右值引用引用左值及其更深入的使用场景分析 2.5 -> 完美转发 C11(上) 1 -> STL…

为什么要建设数字化校园?

数字化校园的建设能够使用户能够随时随地的在有互联网的地方获取到校园的信息,而且由于这些信息都是有校园的管理部门发布的,所以这样就能保证信息的权威性。数字化校园平台还能让学校内部建立起相对独立的网络体系,能有效的消除“信息化孤岛…

Leetcode 3121. Count the Number of Special Characters II

Leetcode 3121. Count the Number of Special Characters II 1. 解题思路2. 代码实现 题目链接:3121. Count the Number of Special Characters II 1. 解题思路 这一题算是一个分类讨论的问题吧,我们只需要对每一个字符考察其前序当中所有出现过的字符…

Qt实现XYModem协议(四)

1 概述 XMODEM协议是一种使用拨号调制解调器的个人计算机通信中广泛使用的异步文件运输协议。这种协议以128字节块的形式传输数据,并且每个块都使用一个校验和过程来进行错误检测。使用循环冗余校验的与XMODEM相应的一种协议称为XMODEM-CRC。还有一种是XMODEM-1K&am…

Leetcode 4.21

1.罗马数字转整数 用unordered_map去存罗马数字对应的数值&#xff0c;分情况讨论&#xff0c;把所有情况都列出来即可 class Solution { public:unordered_map<char, int> mp {{I, 1},{V, 5},{X, 10},{L, 50},{C, 100},{D, 500},{M, 1000}};int romanToInt(string s)…

Kubernetes TDengine 系列|安装 TDengine 的 Grafana 插件|Grafana监控TDengine数据

为了让Grafana 能够监控到TDengine 数据&#xff0c;快速集成搭建数据监测报警系统&#xff0c;所以直接安装TDengine 插件。 目录 一、安装 TDengine 的 Grafana 插件1、下载TDengine grafana插件2、解压到指定目录3、配置未签名插件 二、配置数据源&#xff0c;简单查询TDen…

【已解决】VMware虚拟机中出现无法将“iso文件”当做CD-ROM映像进行连接:找不到该文件的错误

报错 在VMware上运行虚拟机时报错&#xff1a;VMware虚拟机中出现无法将“iso文件”当做CD-ROM映像进行连接&#xff1a;找不到该文件的错误 原因分析 找不到这个iso文件了&#xff0c;检查文件位置 解决方案 找到iso文件&#xff0c;然后在VM中编辑虚拟机中这个文件的位置…

算法:堆(优先队列)

堆&#xff08;优先队列&#xff09;分为最大堆和最小堆。 python实现 class HEAPQ:# 最小堆def __init__(self, l):self.l lself.build()def build(self):n len(self.l)end n // 2for i in range(end, -1, -1):self.update(i)def update(self, i):l self.ln len(l)idx …

前端点击地图上的位置获取当前经纬度

地图封装组件 <template><div id"container"></div> </template> <script>import AMapLoader from amap/amap-jsapi-loader;export default {name: "Mapview",props:{mapinfo:{type:Object,default:function(){return {}}}…

AI-数学-高中-45函数单调性与导数

原作者视频&#xff1a;【导数】【一数辞典】5函数单调性与导数&#xff08;重要&#xff09;_哔哩哔哩_bilibili 导数最重要作用&#xff1a;判断函数单调性。 示例&#xff1a;

新风口下的必应bing国内广告投放该怎么做?

必应Bing作为全球搜索引擎市场的重要参与者&#xff0c;正逐渐显现出其在国内市场的独特价值和潜力。随着互联网生态的多元化发展&#xff0c;必应Bing凭借其高质量用户群和精准投放能力&#xff0c;成为了企业寻求新增长点的新风口。 一、洞察先机&#xff0c;精准定位市场 …

运营版游戏陪玩平台源码/tt语音聊天/声优服务/陪玩系统源码开黑/约玩源码

简述 一个人的游戏叫孤独&#xff0c;一群人的游戏才是乐趣&#xff0c;随着电竞产业在国内的快速发展&#xff0c;游戏陪练行业也迅速成长&#xff0c;现在很多游戏玩家为了追求更高质量的游戏体验感&#xff0c;往往会在玩游戏的过程中找陪练&#xff0c;通过陪玩系统进行预…

python绘制等高线图

在Python中&#xff0c;可以使用matplotlib和numpy库来绘制等高线图&#xff08;contour plot&#xff09;。等高线图通常用于显示三维数据的二维投影&#xff0c;其中颜色或线条的密度表示第三维的值。 以下是一个简单的示例&#xff0c;说明如何使用这些库来创建等高线图&am…

欧姆龙FZ5-L355维修工业视觉系统主机电脑主板Omron FZ5 L355深圳捷达工控维修

工业计算机&#xff1a;坚固耐用&#xff0c;为机器视觉做好准备 由于其重要性和及时性&#xff0c;质量控制已被确定为生产的主要瓶颈之一。借助机器视觉&#xff0c;物联网设备和机器视觉系统协同工作&#xff0c;以超人的准确性和速度实现质量控制流程自动化。然而&#xf…

Recat学习

1&#xff0c;创建 项目搭建 npm config set registry http://registry.npm.taobao.org/ // 安装yarn npm install -g yarn // 安装cnpm npm install -g cnpm -registryhttps://registry.npm.taobao.org //设置国内源 yarn config set registry https://registry.npm.taobao.o…

租用新加坡服务器部署wordpress如何加速?

要加速在新加坡服务器上部署WordPress&#xff0c;可以采取以下一些措施&#xff1a; 1. 选择性能优越的主机提供商&#xff1a;选择具有优质硬件、高性能网络和优化服务器配置的主机提供商。确保服务器的硬件资源充足&#xff0c;网络连接稳定&#xff0c;以提高WordPress网站…

常用的JDK9-JDK17的一些新增语法特性

目录 1.前言2.一些新增的特性2.1 yield关键字2.2 var关键字2.3 空指针异常2.4 密封类2.5 接口中的私有方法2.6 instanceof2.7 其他 1.前言 从springboot3.0开始&#xff0c;已经不⽀持JDK8了。参考资料 &#xff1a;Spring官方博客。从3.0开始&#xff0c;转变为JDK17。 官方…

Node+Vue3+mysql+ant design实现前后端分离——表格的添加、修改和删除

在上一篇文章中,我们分享了如何运用NodeJS、Vue、MySQL以及其他技术来实现后台管理系统中的表格查询功能。今天,我们将继续探讨另外三个重要的功能实现原则。这些原则在构建后台管理系统时至关重要,同时还有导入和导出这两种功能也必不可少。关于导入和导出功能,我们会在下…

2024.4月最新的高额度Hostinger优惠券、优惠代码、优惠链接

优惠链接&#xff1a;https://hostinger.com?REFERRALCODE1RAY132 以上优惠链接最低可获取30%折扣&#xff0c;以Cloud Startup版本为例&#xff0c;四年期直接购买价格为480 &#xff0c;使用以上优惠链接购买价为 380 &#xff0c;使用以上优惠链接购买价为380 &#xff0c…