Oracle11g数据库基础教程(第二版)张凤荔实验5 下载本文

内容发布更新时间 : 2024/12/29 7:22:17星期一 下面是文章的全部内容请认真阅读。

实验五

实验内容: 1.使用条件语句

执行例9.4中程序,观察运行结果。 例9.4

下面演示了IF语句的使用方法,代码如下: SET ServerOutput ON; DECLARE

Num INTEGER := -11; BEGIN

IF Num < 0 THEN

dbms_output.put_line('负数'); ELSIF Num > 0 THEN

dbms_output.put_line('正数'); ELSE

dbms_output.put_line('0'); END IF; END; /

程序中声明了一个整形变量Num,使用IF语句判断Num是正数、负数或者0,程序运行结果为‘负数’。

2.使用分支语句

执行例9.5中程序,观察运行结果。 例9.5

使用CASE语句根据给定的整数输出对应的星期值,代码如下: SET ServerOutput ON; DECLARE

varDAY INTEGER := 3; Result VARCHAR2(20); BEGIN

Result := CASE varDAY

WHEN 1 THEN '星期一' WHEN 2 THEN '星期二' WHEN 3 THEN '星期三' WHEN 4 THEN '星期四' WHEN 5 THEN '星期五' WHEN 6 THEN '星期六' WHEN 7 THEN '星期七' ELSE '数据越界' END;

dbms_output.put_line(Result); END; /

程序中声明了一个整形变量varDAY和一个字符型变量Result。使用CASE语句判断varDAY变量是星期几。如果变量varDAY在1~7之间,则能显示相应的星期信息:否则返回提示信息‘数据越界’。程序运行结果为‘星期三’。

3.使用循环语句

执行例9.6和例9.9中程序,观察运行结果。 例9.6

下面是关于LOOP…EXIT…END语句的示例程序,代码如下: SET ServerOutput ON; DECLARE

v_Num INTEGER := 1; v_Sum INTEGER := 0; BEGIN LOOP

v_Sum := v_Sum + v_Num;

dbms_output.put_line(v_Num); IF v_Num = 3 THEN EXIT; END IF;

dbms_output.put_line(' + '); v_Num := v_Num + 1; END LOOP;

dbms_output.put_line(' = '); dbms_output.put_line(v_Sum); END; /

程序将计算1~3的累加结果,程序运行如下: 1+2+3=6

例9.9

例9.6的程序也可以用FOR…IN…LOOP…END LOOP语句实现,代码如下: SET ServerOutput ON; DECLARE

v_Num INTEGER; v_Sum INTEGER := 0; BEGIN

FOR v_Num IN 1..3 LOOP

v_Sum := v_Sum + v_Num;

dbms_output.put_line(v_Num); IF v_Num < 3 THEN

dbms_output.put_line(' + '); END IF; END LOOP;

dbms_output.put_line(' = '); dbms_output.put_line(v_Sum); END; /

1. 使用PL/SQL函数

执行例9.12和例9.26中的程序,观察运行结果。 例9.12

如果要计算-4的绝对值,可以执行一下命令。 SET ServerOutput ON; BEGIN

dbms_output.put_line(ABS(-4)); END; /

例9.26

执行以下语句可以统计Users中最小的用户编号: SELECT MIN(UserID) FROM UserManAdmin.Users;