【PL/SQL】05 基本PL/SQL语法、存储过程


Procedure Language/SQL基础语法存储过程与触发器
博客参考

Oracle版本说明

SID Security Identifiers 系统标识号

Oracle 版本说明
Oracle8i Oracle9i Oracle10g Oracle11g Oracle12c
i 代表 Internet。8i 版本开启对 Internet 的支持。所以,在版本号之后,添加了标识 i。
G:g 代表 Grid 网格。10g 加入了网格计算的功能,因此版本号之后的标识使用了字母 g。
C:c 代表云(cloud)计算设计。12c 版本表示对云计算的支持。

什么是PL/SQL?面向过程

Orcle对sql语言的过程化拓展。使其拥有过程处理能力。
在SQL命令语言(数据操纵能力)中增加了过程处理语句。(分支、循环等)

为职工涨工资,每人涨10%

update emp set sal=sal*1.1;

按职工职称长工资,总裁涨1000,经理涨800,其他人员涨400

程序语法

包含一个或多个逻辑块
是面向对象:高级语言
定义一定开辟空间,声明未必

declare
	(变量说明,游标申明,例外说明) 说明部分 declaration statements
begin
	 (DML语句) 语句序列 executable statements 执行部分
exception
	例外处理语句 exception stastements 异常处理部分
End;

分隔符 具有特殊含义的符号

分隔符 概述
:= /default 赋值
<> 不等于

常量定义

select...into 查询结果只能是一条记录,不能是零条或多条记录

变量初始化时,可以使用default关键字对变量进行初始化 :=

非结构化的大数据类型(LOB数据类型)

变量名、数据类型和长度
分号结束说明语句
char varchar2 date number boolean long

var1 char(15);
psal number(9,2);

/**/多行注释,说明性文字,帮助别人阅读源码。注释中的字符被编译器忽略。
双连字符单行注释
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

set serveroutput on

set serveroutpu on是使oracle可以使用自带的输出方法
dbms_output.put_line(‘XX’);

使用范围
使用于PL/SQL COMMAND WINDOW,SQL PLUS中

永久有效
为了不须要每次都输入set serveroutput on 可以在Oracle安装文件夹下查glogin.sql文件。并在文件里添加set serveroutput on就可以。

变量定义

引用变量

在这里插入图片描述
在这里插入图片描述
buffer size 缓冲区大小

记录型变量

在这里插入图片描述
|| 连接符

if分支

在这里插入图片描述
如果输入的不是1,则没有输出

判断18岁以下是未成年人,18岁以上40一下是成年人,40以上是老年人
在这里插入图片描述

loop循环 三种方式

输出1到10

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

存储过程 stored procedure【理解】

是数据库中的一个重要对象
一组为了完成特定功能的SQL语句集
用户通过指定存储过程的名字并给出参数来执行

创建一个输出helloworld的存储过程
在这里插入图片描述

给指定员工涨100工资,并打印出涨前和涨后的工资

存储函数[理解]

存储过程和存储函数

程序语句练习——交互

在这里插入图片描述

修改列表名

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

接受一个员工号,输出这个员工所在部门的平均工资

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

在这里插入图片描述

以交互的方式给部门表插入一条记录,如果出现主键冲突异常,显示“部门已经被占用”的字样

在这里插入图片描述

接收一个员工号,输出该员工所在部门名称

在这里插入图片描述

创建emp表删除添加数据时的触发器

在这里插入图片描述

找出empno为7369员工工资,如果小于1200,则输出low,如果大于2000输出middle

在这里插入图片描述

循环结构 输出1到20

在这里插入图片描述

当员工办公地点为’BOSTON’时,获取该员工部门编号,当该值为10时,输出accounting,20时输出reserch,30时为sales,40时为operations

在这里插入图片描述

发布了56 篇原创文章 · 获赞 16 · 访问量 5069

猜你喜欢

转载自blog.csdn.net/qq_40892702/article/details/103080084
今日推荐