05Oracle第五课

2019-04-14 11:54

PL/SQL基础

主要内容: PL/SQL基础知识

PL/SQL基础知识

PL/SQL是一种程序语言,叫做过程化SQL语言(Procedural Language/SQL)。PL/SQL是Oracle数据库对SQL语句的扩展。在普通SQL语句的使用上增加了编程语言的特点,所以PL/SQL就是把数据操作和查询语句组织在PL/SQL代码的过程性单元中,通过逻辑判断、循环等操作实现复杂的功能或者计算的程序语言。

PL/SQL的作用

使用PL/SQL可以编写具有很多高级功能的程序,虽然通过多个SQL语句可能也能实现同样的功能,但是相比而言,PL/SQL具有更为明显的一些优点:

1、 能够使一组SQL语句的功能更具模块化程序特点; 2、 采用了过程性语言控制程序的结构;

3、 可以对程序中的错误进行自动处理,使程序能够在遇到错误的时候不会被中断; 4、 具有较好的可移植性,可以移植到另一个Oracle数据库中; 5、 集成在数据库中,调用更快;

6、 减少了网络的交互,有助于提高程序性能。 通过多条SQL语句实现功能时,每条语句都需要在客户端和服务端传递,而且每条语句的执行结果也需要在网络中进行交互,占用了大量的网络带宽,消耗了大量网络传递的时间,而在网络中传输的那些结果,往往都是中间结果,而不是我们所关心的。

而使用PL/SQL程序是,因为程序代码存储在数据库中,程序的分析和执行完全在数据库内部进行,用户所需要做的就是在客户端发出调用PL/SQL的执行命令,数据库接收到执行命令后,在数据库内部完成整个PL/SQL程序的执行,并将最终的执行结果返回给用户。在整个过程中网络里只传输了很少的数据,减少了网络传输占用的时间,所以整体程序的执行性能会有明显的提高。

项目在不同的数据库平台间迁移时,过多的PL/SQL程序,使迁移变得困难。

PL/SQL开发环境基本设置

集成开发环境:

Oracle SQL Developer PL/SQL Developer SQL*PLUS

SQL*Plus:SQL、PL/SQL、SQL*Plus命令 SQL*Plus适合PL/SQL开发

了解替代变量的使用方法: &变量名

不需要声明,主要提供输入操作 了解绑定变量的使用方法: var 变量名 类型

exec :变量名:=值;

绑定变量在引用时在变量名前加\

绑定变量可以为子程序提供实参(以后再讲) 输出缓冲区设置:

serveroutput 默认关闭,需要开启

set serveroutput on ——打开输出缓冲区,显示输出缓冲区的内容 dbms_output.put_line('...')过程的输出通过serveroutput输出

dbms_output.put_line('...')把数据输出到输出缓冲区

PL/SQL程序的基本结构

最简单的、不能再简化的

begin

null; -- 任何一个PL/SQL块,都至少有一条执行语句 end;

块的分类

匿名块(anonymous):没有头和标签的块 begin

null; end;

命名块(named): 在程序的开始,有标签的块 <

> begin

null; end;

子程序(subprogram):有头的块

create or replace procedure a --header as //声明部分 begin null; end;

触发器(trigger):有头且声明是以declare开头的 create or replace trigger a --header before insert on emp for each row declare

--声明

v_num int; //声明部分

begin

select m.nextval into v_num from dual; :new.empno:=v_num; end;

基本语法

PL/SQL程序可以使用的字符

算术运算符 + - * / > < = ** 字母 A-Z, a-z 数字 符号

2**3 = 2的3次方

0-9

~ ! @ # $ % * ( ) _ - + = | : ; \

@位置指示器 %属性引用符号 : 绑定变量或限定词前缀 间空符号 制表符 空格 回车符号

标识符的命名规则

1. 最长30字符

2. 开始字符以字母开头

3. 可以包含字母、数字和$、_、#符号 4. 不可以包含任何空白字符 5. 不区分大小写

6. 声明变量(?)每行只能定义一个 7. 默认不可以使用保留字

各种类型的数据的字面值

数字: 直接使用 a int := 100; a int := ‘100’; 字符文本: 单引号引起 a char(10) := ‘a’;

字符串: 单引号引起,若包含单引号,则在其后再添加一个单引号 日期: 单引号引起 a date := ‘2-2月-09’;

布尔型: 直接使用,不能用单引号:true、false、null,布尔值不可以输出

注释和间空

-- :单行注释 /*...*/ :段注释

间空 :提高程序的可读性

数据类型(标量数据类型)

只是在Oracle数据库(SQL)中没有布尔型,PL/SQL语言中有布尔型 字符/字符串类型 (n)char(n byte|char) (n)varchar2(n) 数字类型 number(p,s) p总长度 s精度 布尔类型

boolean

日期/时间型

Date

timestamp(n)

interval year to month: “N年M月”形式,时间段

interval ‘3-2’ year to month

interval day to second: “N天,M小时X分钟Y秒”,时间段

interval ‘3 5:25:30’ day to second

使用变量和常量

语法:Var_name [CONSTANT] TYPE [NOT NULL] [:=VALUE]; CONSTANT :常量 TYPE NOT NULL

:=VALUE

v_char

C_PI constant v_empno

:数据类型 :非空约束 :设置初始值

char(10);

number(6,5) :=3.14159; number(4) not null :=1000;

TYPE:

已知数据类型(number\\char\\date\\boolean)

锚定类型%type :数据类型依赖于锚定表达式,保证在数据库表的定义发生变化的 时候,不需要修改PL/SQL程序 v_empno emp.empno%type; --变量v_empno数据类型和emp表的empno列的数据类型相同

v_hiredate emp.hiredate%type;

表达式

操作符和操作数构成了表达式,常见操作符有:

常见PL/SQL操作

赋值:

:=

:直接变量、字面值或表达式赋值 SELECT ... INTO ? FROM :

通过查询赋值,在PL/SQL语言中select是一个赋值语句,不是查询语句,所以必 须和INTO联合使用 串联:

|| :类似于SQL Server 2000的”+”

--用户输入一个员工的编号,程序输出其工资 declare

v_empno emp.empno%type; v_sal emp.sal%type; begin

v_empno := &empno;

select sal INTO v_sal from emp where empno = v_empno; dbms_output.put_line('此员工工资为:'||v_sal); end;


05Oracle第五课.doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:部编版语文一年级上册写字表生字组词造句

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: