第9章 oracle 数据查询

更新时间:2023-07-29 10:54:01 阅读量: 实用文档 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

Oracle 9i数据库应用技术

第9章Oracle 数据查询

9.1

9.2 9.3 9.4 9.5 9.6

Oracle 9i数据库应用技术

9.1 PL/SQL简介

9.1.1 PL/SQL的基本结构

常量、变量、表达式

流程控制

异常处理9.1.2 9.1.3 9.1.4

Oracle 9i数据库应用技术

9.1.1 PL/SQL的基本结构

1. PL/SQL块

PL/SQL结构化的语言,其程序结构的基本单位是“块”(Block)。PL/SQL块有三个部分:声明部分、执行部分、异常处理部分。

[DECLARE]

declaration statements

BEGIN

executable statements

[EXCEPTION]

exception statements

END

Oracle 9i数据库应用技术

9.1.1 PL/SQL

的基本结构

PL/SQL块中的每一条语句都必须以分号结束,SQL语句可以多行,但分号表示语句的结束。一行中可以有多条SQL语句,他们之间以分号分隔。每一个PL/SQL块由BEGIN或DECLARE开始,以END结束。

Oracle 9i数据库应用技术

9.1.1 PL/SQL的基本结构

2. 块的命名和匿名

PL/SQL程序块可以是一个命名的程序块也可以是一个匿名程序块,匿名程序块可以用在服务器端也可以用在客户端。

执行部分包含了所有的语句和表达式,执行部分以关键字BEGIN开始,以关键字EXCEPTION结束,如果EXCEPTION不存在,那么将以关键字END结束。分号分隔每一条语句,使用赋值操作符:=或SELECT INTO给每个变量赋值,执行部分的错误将在异常处理部分解决,在执行部分中可以使用另一个PL/SQL程序块,这种程序块被称为嵌套块。

Oracle 9i数据库应用技术

9.1.1 PL/SQL的基本结构

3. 块的执行

SQL*Plus中匿名的PL/SQL块的执行是在PL/SQL块后输入“/”来执行。

命名的程序与匿名程序的执行不同,执行命名的程序块必须使用execute关键字。

Oracle 9i数据库应用技术

9.1.2 常量、变量、表达式

1. 变量

声明变量

Variable_name datatype [(WIDTH)] [:= DEFAULT expression]

给变量赋值

通常给变量赋值有两种方式:一是直接给变量赋值;二是通过SQL SELECT INTO给变量赋值。

Oracle 9i数据库应用技术

9.1.2 常量、变量、表达式

2. 常量

常量与变量相似,但常量的值在程序内部不能改变,常量的值在定义时赋予,声明方式与变量相似,但必须包括关键字CONSTANT

Oracle 9i数据库应用技术

9.1.2 常量、变量、表达式有效字符集

所有的大写和小写英文字母;

数字:0-9

符号:( ) + -* / < > = ! ; : . ' @ % , 3.

" # & _ { } ? [ ]

Oracle 9i数据库应用技术

9.1.2 常量、变量、表达式

PL/SQL标识符的最大长度是30个字符,并且不区分字母的大小写。但是适当地使用大小写,可以提高程序的可读性。

4. 运算符

PL/SQL支持的运算符包括算术运算符、和关系运算

符和逻辑操作符。

Oracle 9i数据库应用技术

9.1.2 常量、变量、表达式种类运算符说明

算术操作符**指数

*, /乘、除

+, -, ||加、减、连接

=等于

<>, ! =不等于

>, <大于、小于

关系操作符<=, >=小于等于、大于等于

BETWEEN AND 检索两值之间的内容

IN检索匹配列表中的值

LIKE检索匹配字符样式的数据

IS NULL检索空数据

逻辑操作符NOT取相反的逻辑值

AND两个值为真则结果为真

OR只要有一个值为真结果就为真

Oracle 9i数据库应用技术

9.1.3 流程控制

1. 条件结构

IF条件判断逻辑结构

IF condition THEN statement

END IF

IF condition THEN statements_1

ELSE statements_2

END IF

Oracle 9i数据库应用技术

9.1.3 流程控制

IF condition1 THEN statements_1

ELSE IF condition2 THEN

statements_2

ELSE statements_3

END IF

Oracle 9i数据库应用技术

9.1.3 流程控制

1. 条件结构

CASE 表达式

CASE 变量

WHEN 表达式1 THEN 值1

WHEN 表达式2 THEN 值2

WHEN 表达式3 THEN 值3

WHEN 表达式4 THEN 值4

ELSE 值5END;

Oracle 9i数据库应用技术

9.1.3 流程控制

2. 循环控制

LOOP EXIT END循环控制语句

LOOP循环语句是其中最基本的一种。

LOOP语句的格式如下:

LOOP

statements

END LOOP;

这种循环语句是没有终止的,如果不人为控制的话,其中的statements将会无限地执行。一般可以通过加入EXIT语句来终结该循环。

Oracle 9i数据库应用技术

9.1.3 流程控制

2. 循环控制

WHILE LOOP循环控制语句

WHILE LOOP有一个条件与循环相联系,如果条件为TRUE,则执行循环体内的语句,如果结果为FALSE,则结束循环。

FOR LOOP循环控制语句

FOR counter IN [REVERSE] start_range end_range LOOP

statements;

END LOOP;

Oracle 9i数据库应用技术

9.1.3 流程控制

counter是一个隐式声

明的变量,初始值是

start_range,第二个

值是start_range+1,

直到end_range。如果

使用了REVERSE关键字,

那么范围将是一个降序。

Oracle 9i数据库应用技术

9.1.3 流程控制

3. GOTO语句

GOTO LABEL;

执行GOTO语句时,控制会立即转到由标签标记的语句。PL/SQL中对GOTO语句有一些限制,即在块、循环和IF条件结构中使用GOTO语句时不能从外层跳转到内层。

Oracle 9i数据库应用技术

9.1.3 流程控制

4. 嵌套

程序块的内部可以有另一个程序块这种情况称为嵌套。嵌套要注意的是变量,定义在最外部程序块中的变量可以在所有子块中使用,如果在子块中定义了与外部程序块变量相同的变量名,在执行子块时将使用子块中定义的变量。子块中定义的变量不能被父块引用。同样中,反之则是合法的。GOTO语句不能由父块跳转道子块

本文来源:https://www.bwwdw.com/article/3efm.html

Top