014.PL-SQL编程

无奋斗不青春

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

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

PL-SQL编程

        • PL/SQL编程
          • PL/SQL介绍
        • 开发工具
    • 编写过程
          • PL/SQL基础

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


http://www.ppmy.cn/devtools/109287.html

相关文章

软件测试-Selenium+python自动化测试

目录 会用到谷歌浏览器Chrome测试,需要下载一个Chromedriver(Chrome for Testing availability)对应自己的浏览器版本号选择。 一、元素定位 对html网页中的元素进行定位,同时进行部分操作。 1.1一个简单的模板 from selenium import webdriver from selenium.webdrive…

SQL优化:执行计划详细分析

视频讲解:SQL优化:SQL执行计划详细分析_哔哩哔哩_bilibili 1.1 执行计划详解 id select_type table partitions type possible_keys key key_len ref rows filtered Extra 1.1.1 ID 【概…

Docker 详解及详细配置讲解

Docker 简介 2008 年LXC(LinuX Contiainer)发布,但是没有行业标准,兼容性非常差 docker2013年首次发布,由Docker, Inc开发 什么是 Docker Docker是管理容器的引擎,为应用打包、部署平台,而非单纯的虚拟化技术&#xf…

计算机毕业设计Python+PyTorch小说推荐系统 K-means聚类推荐算法 深度学习 Kears 小说数据分析 可视化 Scrapy爬虫 协同过滤

使用到的技术 开发语言是python3.7,框架是Django3.0,采用的是djanog前后端相结合的技术,后台管理系统是xadmin,数据库是Mysql5.7。 1、Django的MTV架构 所谓MTV就是:数据模型(M)-前端界面(T)-调度控制器(V). 用户在浏览器发起一个请求&…

SpringBoot自动装配-Condition

SpringBoot的自动装配(Auto-configuration)是其框架中一项强大的功能,它基于条件化装配(Conditional Configuration)机制,能够根据应用程序的依赖和配置自动完成大部分常见的配置工作,从而大大减…

SSM框架介绍

SSM通常指的是三个开源框架的组合,即Spring、SpringMVC(Spring Web MVC)和MyBatis,这三个框架经常一起使用来开发Java企业级应用,特别是在Web应用开发中非常流行。 SSM框架介绍 Spring 简介:Spring是一个…

C++基础多态

目录 学习内容: 1. 多态 1.1 多态的实现 1.2 函数重写(override) 1.3 虚函数 1.4 使用多态实现的实例 1.5 虚函数的底层实现 1.6 重载(voerload)、重写(override)和隐藏(h…

数学建模笔记——熵权法(客观赋权法)

数学建模笔记——熵权法[客观赋权法] 熵权法(客观赋权法)1. 基本概念2. 基本步骤3. 典型例题3.1 正向化矩阵3.2 对正向化矩阵进行矩阵标准化3.3 计算概率矩阵P3.4 计算熵权3.5 计算得分 4. python代码实现 熵权法(客观赋权法) 1. 基本概念 熵权法,物理学名词,按照信息论基本原…

4G模块、WIFI模块、NBIOT模块通过AT指令连接华为云物联网服务器(MQTT协议)

MQTT协议概述 MQTT(Message Queuing Telemetry Transport)是一种轻量级的消息传输协议,它被设计用来提供一对多的消息分发和应用之间的通讯,尤其适用于远程位置的设备和高延迟或低带宽的网络。MQTT协议基于客户端-服务器架构&…

数据结构:二叉树

1、二叉树得存储与遍历 1.1二叉树的存储 1.1.1二叉树的顺序存储 顺序存储指的是按照满二叉树的结点层次编号,依次存放二叉树中的数据元素。如下图所示 可以看到二叉树的顺序存储非常浪费空间,如左图,二叉树第五个结点虽然没有存储元素&…

springboot+vue+mybatis智慧篮球馆预约+PPT+论文+讲解+售后

近些年来,随着科技的飞速发展,互联网的普及逐渐延伸到各行各业中,给人们生活带来了十分的便利,智慧篮球馆预约利用计算机网络实现信息化管理,使整个智慧篮球馆预约的发展和服务水平有显著提升。 本文拟采用Eclipse开发…

uniapp如何监听页面滚动?

在uni-app中,监听页面滚动主要通过在页面的.vue文件中的onPageScroll生命周期函数来实现。onPageScroll函数会在页面滚动时触发,你可以在这个函数中获取到当前页面的滚动位置等信息。 下面是一个简单的示例,展示了如何在uni-app中监听页面滚…

2024国赛数学建模C题完整论文:农作物的种植策略

农作物种植策略优化的数学建模研究(完整论文,持续更新,大家持续关注,更新见文末名片 ) 摘要 在本文中,建立了基于整数规划、动态规划、马尔科夫决策过程、不确定性建模、多目标优化、相关性分析、蒙特卡洛…

828华为云征文 | 基于Docker与Jenkins实现自动化部署

需要了解 本文章主要讲述在 华为云Flexus X 实例上使用docker快速部署持续集成工具 Jenkins,通过插件来自动化CI/CD过程中的各种琐碎功能。选择合适的云服务器: 本文采用的是 华为云服务器 Flexus X 实例(推荐使用)连接方式&#…

第十五届蓝桥杯 Python 省赛题目及解析

第十五届蓝桥杯 Python 省赛题目及解析 选择题 1. 运行下面程序,输出的结果是()。 s ‘py’ print(‘t’.join(s)) A、tpyB、ptyC、tptyD、tptyt 正确答案:B 答案解析: join() 方法是字符串的一个方法,…

springboot实战学习(1)(开发模式与环境)

目录 一、实战学习的引言 (1)前后端的大致学习模块 (2)后端 (3)前端 二、开发模式 一、实战学习的引言 (1)前后端的大致学习模块 (2)后端 Validation&#xf…

网络模型应用实例

import torch import torchvision from PIL import Image from torch import nn image_path "D:/test pytorch/images/dog.png" # 读取图片 image Image.open(image_path) image image.convert(RGB) # png格式的图片是4通道类型,RGB只有三通道&#x…

深入Redis:事务的理解

在MySql的事务中,有几个很重要的特性,原子性、一致性、持久性、隔离性。 相比于MySql,Redis的事务就没有这么复杂了,要简单很多。 原子性:官网的介绍中,Redis没有原子性。(因为Redis不存在回滚…

信创企业级即时通讯:私有化安全沟通的新趋势

随着信息技术的不断发展,企业间的及时沟通和高效协作成为了推动业务创新和发展的关键。而信创企业作为信息创新的先驱者,对即时通讯工具的安全性和私有化能力提出了更高的要求。在这样的背景下,私有化安全沟通逐渐成为了信创企业级即时通讯的…

小怡分享之数据结构LinkedList与链表

前言: 🌈✨前面小怡给大家介绍了ArrayList,今天小怡给大家介绍一下链表。 1.ArrayList的缺陷 当在ArrayList任意位置插入或者删除元素时,就需要后续元素整体往前或者往后搬移,时间复杂度为O(n)…