014.PL-SQL编程

无奋斗不青春

我 的 个 人 主 页:👉👉 失心疯的个人主页 👈👈
入 门 教 程 推 荐 :👉👉 Python零基础入门教程合集 👈👈
虚 拟 环 境 搭 建 :👉👉 Python项目虚拟环境(超详细讲解) 👈👈
PyQt5 系 列 教 程:👉👉 Python GUI(PyQt5)文章合集 👈👈
Oracle数据库教程:👉👉 Oracle数据库文章合集 👈👈
优 质 资 源 下 载 :👉👉 资源下载合集 👈👈
优 质 教 程 推 荐:👉👉 Python爬虫从入门到入狱系列 合集👈👈

分隔线
在这里插入图片描述

PL/SQL编程
  • 本节要点
    • PL/SQL介绍
    • PL/SQL基础
  • 本节目标
    • 理解oracle的PL/SQL概念
    • 掌握PL/SQL编程技术(包括编写过程、函数、触发器、包…)

PL/SQL介绍
  • PL/SQL(Procedural Language/sql)是oracle在标准的sql语言上的扩展。PL/SQL不仅允许嵌入sql语言,还可以定义变量和常量,允许使用条件语句和循环语句,允许使用例外处理各种错误,这样使得它的功能变得更加强大。
  1. 过程、函数、触发器是pl/sql编写的
  2. 过程、函数、触发器是存放在Oracle中的
  3. pl/sql是非常强大的数据库过程化语言
  4. 用pl/sql编写的过程、函数可以在java程序中调用
  • 用PL/SQL为什么会提高程序的运行性能
    1. 传统方式:程序内些SQL语句——>通过链接传到数据库——>数据库编译SQL语句——>执行编译后的SQL语句——>返回结果给程序
    2. PL/SQL方式:程序传参数调用PL/sql过程——>数据库执行PL/SQL过程——>返回结果给程序
  • 学习必要性
  • 优点
    1. 提高应用程序的运行性能
    2. 模块化的设计思维[各个功能直接封装成过程]
    3. 减少网络传输量
    4. 提高安全性
  • 缺点
    1. 移植性不好(更换数据库,所有过程都要重新写)

开发工具
  • sqlplus开发工具
    • sqlplus是oracle公司提供的一个工具
    • 编写过程
      • 案例:编写一个存储过程,该过程可以向某表中添加记录
        1. 创建一个简单的表
        create table mytest(name varchar2(30),passwd varchar2(30));
        
        2. 创建过程sp_pro1
        create procedure sp_pro1 is
        begin
        -- 执行部分
        insert into mytest values('疯子','m123');
        end;
        
        -- 如果过程名已存在
        解决方法1:更换过程名;
        解决方法2:or replace参数(创建或者替换)
        create or replace procedure sp_pro1 is
        begin
        -- 执行部分
        insert into mytest values('疯子','m123');
        end;
        -- replace:如果该过程名存在,就替换
        -- create or replace: 创建 或 替换
        
    • 查看过程错误信息
      show error;
      
    • 调用过程
      1. exec 过程名(参数值1,参数值2,…)
      2. call 过程名(参数值1,参数值2,…)
      exec sp_pro1
      
  • pl/sql developer开发工具
    • pl/sql developer是用于开发pl/sql块的继承开发环境(ide)。它是一个独立的产品,不是oracle的一个附带品
    • 编写过程

在这里插入图片描述

  • 在这里插入图片描述
  • 在这里插入图片描述
  • 在这里插入图片描述
  • 在这里插入图片描述

PL/SQL基础
  • 开发人员使用pl/sql编写应用模块时,不仅需要掌握sql语句的编写方法,还要掌握pl/sql语句及语法规则。pl/sql编程可以使用变量和逻辑控制语句,从而可以编写非常有用的功能模块。比如:分页存储过程模块、订单处理存储过程模块、转账存储过程模块…而且如果用pl/sql编程,我们可以轻松完成复杂的查询要求

  • 简单分类

    • 在这里插入图片描述
  • 编写规范

  • 注释

    1. 单行注释:–
      select ename from emp -- 查询emp表的员工姓名
      
    2. 多行注释://
      select *
        from emp
       /*where empno = '7788'
         and sal > 3000*/
      
  • 标识符号的命名规范

    1. 定义变量时,用v_作为前缀:v_sal
    2. 定义常量时,用c_作为前缀:c_rate
    3. 定义游标时,用_cursor作为后缀:emp_cursor
    4. 定义例外时,用e_作为前缀:e_error

  • 7
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

失心疯_2023

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值