PLSQL数据库

目录

什么是PLSQL数据库

PL数据库的实现方法

PL数据库的基本语法

1.作用

2.语法

3.赋值输出

4.引用

5.异常处理

[6.if 判断](#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赋值给a
        select 表中字段 into 变量名 from 表名; -- 变量赋值
        dbms_output.put_line('单价:'||变量名); -- 输出
4.引用
复制代码
        声明变量 (变量名 表名.字段名%type;  引用变量)
        声明行变量(变量名 表名%rowtype;  引用一行变量)
        begin
            select * into 变量名 from 表名 where id = 1;
            变量名=表名.字段名···(赋值编辑)
        end;
5.异常处理
复制代码
-- 引用行变量where不可筛选多行或不存在的id
exception
    when 错误类型 then
        输出;
-- 处理
exception
    when no_data_found then
        dbms_output.put_line('数据找不到!');
    when too_many_rows then
        dbms_output.put_line('数据太多!');
    when other then
        dbms_output.put_line('异常:'||sqlcode||sqlerrm);
6.if 判断
复制代码
-- if 条件 then
--   业务逻辑
-- elsif 条件 then
--   业务逻辑
-- else
--   业务逻辑
-- end if;
7.loop循环
复制代码
loop/end loop;
loop
    dbms_output.put_line(···);
    变量=变量+1;
    exit when 变量>100;
end loop;
8.while循环
复制代码
while 条件判断  -- 符合条件才能进入循环
loop
    dbms_output.put_line(···);
    变量=变量+1;
    exit when 变量>100;
end loop;
9.for循环
复制代码
declare
begin
    for 变量 in 起始值..终止值
    loop
    dbms_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.参数游标
复制代码
declare
    cursor 游标名(参数名 number) is select *from 表名 where id列名 = 参数名;
begin
    for i in 游标名(1)
    loop
    dbms_output.put_line('价格:'||i.列名||'吨位:'||i.列名||'吨位:'||i.列名);
    end loop;
end;
12.索引
复制代码
-- 加快查询速度
create index 索引名称  on 表名(列名);
13.分区表
复制代码
范围分区(range,用时间分区)
HASH 分区(散列分区,不连续)
列表分区
复合分区(范围+HASH)
相关推荐
fen_fen12 小时前
Oracle建表语句示例
数据库·oracle
此刻你16 小时前
常用的 SQL 语句
数据库·sql·oracle
海心焱21 小时前
从零开始构建 AI 插件生态:深挖 MCP 如何打破 LLM 与本地数据的连接壁垒
jvm·人工智能·oracle
德彪稳坐倒骑驴1 天前
MySQL Oracle面试题
数据库·mysql·oracle
吕司1 天前
MySQL库的操作
数据库·mysql·oracle
dishugj1 天前
【Oracle】 rac的一些问题以及解决方案
数据库·oracle
eWidget1 天前
面向信创环境的Oracle兼容型数据库解决方案
数据库·oracle·kingbase·数据库平替用金仓·金仓数据库
熊文豪1 天前
关系数据库替换用金仓——Oracle兼容性深度解析
数据库·oracle·金仓数据库·电科金仓·kes
eWidget1 天前
面向Oracle生态的国产高兼容数据库解决方案
数据库·oracle·kingbase·数据库平替用金仓·金仓数据库
A懿轩A1 天前
【MySQL 数据库】MySQL 数据库核心概念详解:库、表、字段、主键与关系型模型一文读懂
数据库·mysql·oracle