PL-SQL编程

article/2025/10/6 10:13:55

PL/SQL介绍:

  • PL/SQL是ORACLE对标准数据库语言的扩展

  • PL/SQL 是过程语言(Procedural Language)与结构化查询语言(SQL)结合而成的编程语言

  • PL/SQL 是对 SQL 的扩展 支持多种数据类型,如大对象和集合类型,可使用条件和循环等控制结构

  • 可用于创建存储过程、触发器和程序包,给SQL语句的执行添加程序逻辑

  • 与 Oracle 服务器和 Oracle 工具紧密集成,具备可移植性、灵活性和安全性

  • 支持 SQL,在 PL/SQL 中可以使用:   

                                        数据操纵命令

                                        事务控制命令

                                        游标控制 SQL 函数和 SQL 运算符

  • 支持面向对象编程 (OOP) 可移植性,可运行在任何操作系统和平台上的Oralce 数据库 更佳的性能,PL/SQL 经过编译执行

PL/SQL组成:

         声明部分、可执行部分和异常处理部分

Oracle PL/SQL基本语法:


        declare(可选,声明变量或光标)
        begin(必需,从此处开始执⾏语句)
        exception(异常)

         end;(必需,从此处结束分号不能省略)

PL/SQL的两种赋值⽅式:


        1. :=
        2. into

PL/SQL 支持的流程控制结构:

条件控制

  •           IF 语句

  •           CASE 语句

循环控制

  •           LOOP 循环

  •           WHILE 循环

  •           FOR 循环

顺序控制

  •           GOTO 语句

  •           NULL 语句

IF语句

  根据条件执行一系列语句,有三种形式:IF-THEN、IF-THEN-ELSE 和 IF-THEN-ELSIF

例1:

-- 统计出emp的平均工资,如果>2000,显示公司财政状况良好,<2000,公司财政状况堪忧declareavgsal emp.sal%type;beginselect avg(sal) into avgsal from emp;dbms_output.put_line(avgsal);if avgsal>2000 then dbms_output.put_line('公司财政状况良好');elsif avgsal<2000thendbms_output.put_line('公司财政状况堪忧'); end if;
end;

例2:

-- 查询出7839这个员工的工资
--<2000:收入可怜
--<3000: 收入还行
--<4000:收入较高
-->4000:收入很高了declarehassal emp.sal%type;beginselect sal into hassal from emp where empno='7839';dbms_output.put_line(hassal);if hassal < 2000thendbms_output.put_line('收入可怜');elsif hassal <3000then dbms_output.put_line('收入还行');elsif hassal < 4000thendbms_output.put_line('收入较高');elsedbms_output.put_line('收入很高了');end if;end;

循环语句

1.loop循环

例:

--0~100累加法declarei int :=1;num1 int :=0; 
beginloopexit when i>100;num1 :=num1+i;i := i+1;end loop;dbms_output.put_line(num1);
end;

 2.while循环

例:

declare i int:=10;s int:=0;
beginDBMS_OUTPUT.PUT_LINE('循环开始:');while i<20loops:=s+i;DBMS_OUTPUT.PUT_LINE('进入循环:'||i);i:=i+1;end loop;DBMS_OUTPUT.PUT_LINE('循环结束:'||s);
end;

3.for循环 

例:

declare s int:=0;
beginDBMS_OUTPUT.PUT_LINE('循环开始:');for i in 10..20     loops:=s+i;DBMS_OUTPUT.PUT_LINE('进入循环:'||i);end loop;DBMS_OUTPUT.PUT_LINE('循环结束:'||s);
end;--不需要事先定义循环变量i,自动进入循环,i为循环的边界值10,循环到20
--循环体中i不需要累加,自动(只能)累加1,不能手动赋值

目录

PL/SQL介绍:

PL/SQL组成:

Oracle PL/SQL基本语法:

PL/SQL的两种赋值⽅式:

PL/SQL 支持的流程控制结构:

条件控制

循环控制

顺序控制

IF语句

循环语句

1.loop循环

 2.while循环

3.for循环 

跳转控制 


DECLAREsal int;
BEGINsal :=&sal;  - - 接受用户输入if sal < 100 thengoto first;elsif sal < 200 thengoto second;elsegoto third;end if;<<FIRST>>   --定义一个名称为FIRST的节DBMS_OUTPUT.PUT_LINE('FIRST:'||sal);RETURN;<<SECOND>>DBMS_OUTPUT.PUT_LINE('SECOND:'|| sal);RETURN;<<THIRD>>NULL;
END;


http://chatgpt.dhexx.cn/article/kb7n6g0U.shtml

相关文章

SQL编程学习01

在正式开始学习前&#xff0c;我发现之前安装的MySQL忘记了root密码。 所以在这里补充一下找回root密码的方法&#xff1a;MySQL找回root密码 一、问题与解决&#xff1a; 1、在创建表的时候出现了「1046&#xff08;ErrorCode&#xff1a;1046.No database select…&#x…

SQL编程和高级查询

一、使用SQL操作表 1、SQL语言简介 2、数据库操纵语言 &#xff08;1&#xff09;INSERT命令 INSERT INTO grade VALUES (5,五年级);--插入每一列 INSERT INTO grade VALUES (6,六年级); INSERT INTO grade VALUES (7,七年级); INSERT INTO student(stuNo,stuName,sex) VAL…

数据库系统SQL编程-02

目录 一、查询平均分高于60分的课程&#xff08;MSSQL&#xff09; 表结构: 表样例 输出样例: 编译程序: 二、查询成绩最高的前三名同学(MSSQL) 表结构: 表样例 输出样例: 编译程序: 三、查询所授每门课程平均成绩均在70分以上的教师(MSSQL) 表结构: 表样例 …

嵌入式SQL编程快速上手教程

嵌入式SQL编程快速上手教程 声明&#xff1a;我这里标题虽是《嵌入式SQL编程快速上手教程》&#xff0c;但只是嵌入式SQL编程的冰山一角罢了&#xff0c;我会通过举一道简单例题来教小白快速上手嵌入式SQL编程 第一&#xff1a;题目描述 其模式描述分别是&#xff1a; S (s…

数据库系统SQL编程-01

目录 一、查询各专业学生的平均成绩(MSSQL&#xff09; 表结构: 表样例 输出样例: 编译代码&#xff1a; 二、查询平均成绩最高的前3名同学 表结构: 表样例 输出样例: 编译代码&#xff1a; 三、 查询同专业的学生&#xff08;MSSQL&#xff09; 表结构: 表样…

pl/sql编程语言

–pl/sql编程语言 –pl/sql编程语言是对sql语言的扩展&#xff0c;是的sql语言具有过程化编程的特性 –pl/sql编程语言比一般的过程化编程语言&#xff0c;更加灵活高效 –pl/sql编程语言主要用来编写存储过程和存储函数等。 --声明方法,定义变量 --赋值操作可以用 : 也可以使…

SQL编程开发

文章目录 SQL概述SQL分类SQL语言规范 基本查询语句查询全部列查询特定列过滤操作模糊查询排序操作多表查询单行函数组函数group by和having 子查询库和表的操作库的操作表的操作数据类型列的操作 数据处理之增删改事务、约束和分页事务约束分页 安装好MySQL下步就是使用MySQL&a…

SQL编程

10-1 查询学生表所有学生记录 (5 分) 本题目要求编写SQL语句&#xff0c; 检索出stu表中所有学生记录。 提示&#xff1a;请使用SELECT语句作答。 表结构: 定义表结构的SQL语句。如&#xff1a; CREATE TABLE stu(sno char(4) NOT NULL,sname char(8) NOT NULL,sex tinyin…

SQL 编程

SQL Server中存在两种变量局部变量和成员变量&#xff0c;两种变量的特点和其他语言变量特点一样 全局变量&#xff1a;由系统定义和维护由系统定义和维护 变量名前加“” 例 name 就定义了一个全局变量“name” 局部变量&#xff1a;由用户定义和使用&#xff0c;变量…

可编程的SQL是什么样的?

背景 如果你使用传统编程语言&#xff0c;比如Python&#xff0c;那么恭喜你&#xff0c;你可能需要解决大部分你不需要解决的问题&#xff0c;用Python你相当于拿到了零部件&#xff0c;而不是一辆能跑的汽车。你花了大量时间去组装汽车&#xff0c;而不是去操控汽车去抵达自…

SQL编程语言1

1 SQL简介 SQL是一门操作关系型数据库的编程语言 SQL通用语法 SQL语句可以以单行或多行书写&#xff0c;以分号结尾。只有在读取到分号后系统才会默认你已经输入执行语句MySQL数据库的SQL语句不区分大小写&#xff0c;关键字建议使用大写注释 单行注释&#xff1a;-- 注释内…

sql数据库高级编程总结(一)

1、数学函数&#xff1a;操作一个数据&#xff0c;返回一个结果 &#xff08;1&#xff09;取上限 ceiling 如果有一个小数就取大于它的一个最小整数 列如9.5 就会取到 10 select code,name,ceiling(price) from car &#xff08;2&#xff09;取下限 floor 如果有一个小数就…

SQL基础编程

文章目录 一.SQL的环境搭载单机离线环境在线环境 二.SQL的单表操作1.sql基础三步2.sql四则运算3.limit (限制查询结果个数)4.order by&#xff08;排序&#xff09;5.where 综合条件筛选6.SQL常量7.distinct (把结果中重复的行删除)8.函数(1) 聚合函数&#xff1a;sum() ——求…

君正X1000芯片性能和处理器介绍

君正X1000芯片是针对语音识别功能做了专门定制的芯片&#xff0c;可以支持4个MIC&#xff0c;支持远场唤醒&#xff0c;功耗很低&#xff0c;适用于物联网、智能家居、智能音频、智能玩具等产品 。 X1000 芯片功能&#xff1a; 穿戴处理器级低功耗&#xff0c;待机功耗0.2mW&am…

IBM storwize V5000存储基础配置

初始帐号密码 Superuser / passw0rd 设备和系统的基本状态 首先添加配置主机&#xff0c;前提是已经连接好光纤线&#xff0c;配置好光纤交换机 这里我们使用光纤通道 系统应该可以自动识别到端口&#xff0c;主机名可以设置为主机型号或者主机应用名 两个端口完成 配置内部存…

《计算机系统概论》-第5章-习题答案

给定指令ADD、JMP、LEA、NOT&#xff0c;请判断它们分别是操作&#xff08;或运算&#xff09;指令&#xff0c;还是数据搬移指令或控制指令&#xff1f;对每一条指令&#xff0c;进一步列出该指令可以采用的寻址模式。 指令类型寻址模式ADD操作立即数、寄存器2种寻址模式JMP控…

X1000之LCD部分的翻译

1.显示大小可达640x48060Hz&#xff0c;24BBP RGB 8 8 8 RGB(256^3) 2的24次方16777216 2.支持的颜色就是我们上面计算的 3. 8080并行接口 MCU接口方式&#xff08;8080&#xff0c;6800接口&#xff09;与RGB接口主要的区别 4.支持内部DMA操作和寄存器操作&#xff08;可以…

uboot - 配置过程1(分析国产君正的ingenic-linux-kernel3.10.14-x1000-v8.2-20181116\u-boot\mkconfig脚本)

分析uboot的配置过程&#xff08;mkconfig脚本&#xff09; uboot怎么配置&#xff1f;我们在终端上执行make NAME_config时的运行过程解析&#xff01; STEP1: %_config:: unconfig$(MKCONFIG) -A $(:_config)我们执行make *_config时会运行makefile的这两行程序&#xff0c…

Opencv 以指定格式保存图片

将图像保存至本地&#xff0c;以指定的格式&#xff0c;需要用到cv::imwrite()函数 函数原型&#xff1a; bool imwrite(const string& filename, InputArray img, const vector<int>& paramsvector<int>() )参数解释&#xff1a;filename:图像保存路径&…

【OpenCV-Python】教程:1-1 图像读取显示保存

文章目录 目标代码imread接口原型参数 支持的格式 imwrite接口原型参数 imshow接口原型参数 目标 读图片显示图片保存图片 代码 ## 导入库 import cv2 import sys## 读入图片 img cv2.imread("lena.jpg")## 读入失败退出 if img is None:sys.exit("Could not…