实验2 PLSQL编程

更新时间:2023-10-07 02:35:01 阅读量: 综合文库 文档下载

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

实验二 PL/SQL编程

【开发语言及实现平台或实验环境】

PL/SQL

Oracle 11g 快捷版

【实验目的和要求】

1、 熟练掌握PL/SQL程序设计的基本知识。

2、 熟练掌握PL/SQL中控制结构的使用。具体包括选择结构语句(IF语句和CASE语句),

循环结构(四种循环结构)。 3、 熟练使用PL/SQL中系统函数。 4、 掌握PL/SQL中异常处理语句的使用

5、 掌握PL/SQL中SELECT语句和DML语句的综合运用。

【实验内容及步骤】

1、熟悉PL/SQL的结构 语法结构:

[DECLARE declaration_statements ; ] BEGIN

executable_statements ;

[ EXCEPTION exception_handling_statements ; ] END ; / 例如: Declare

V_name varchar2(12); Begin

select cname into v_name from course

where cno=‘c004’;

DBMS_Output. Put_line (‘c004对应的课程是:’||v_caname); Exception

When no_data_found then

DBMS_Output. Put_line(‘没有对应课程!’); When too_many_rows then

DBMS_Output. Put_line(‘对应数据过多,请确认’); End; /

注意:使用DBMS_Output. Put_line(???)输出语句时,要先运行语句:set serveroutput on;

2、条件语句IF的语法及使用 IF <条件表达式> THEN

<执行语句> …… <执行语句n> [ELSIF <条件表达式> THEN

<执行语句> …… <执行语句n> …… ELSE

<执行语句>] END IF;

例1:声明一个整型变量Num,使用IF语句判断Num变量是正数、负数或0。 SET ServerOutput ON; DECLARE

Num number(10) := -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;

3、分支语句CASE 语法及使用 (1)简单CASE语句 CASE <变量/表达式>

WHEN <表达式1> THEN 语句1 WHEN <表达式2> THEN 语句2 ……

WHEN <表达式n> THEN 语句n ELSE 语句n + 1 END;

(2) 搜索式CASE语句 CASE

WHEN 条件1 THEN 语句1 ; WHEN条件2 THEN 语句2 ;

...

WHEN条件n THEN 语句n ; [ ELSE 语句n+1; ] END CASE ;

4、练习循环结构语句的使用方法。 (1)循环语句LOOP…EXIT…END LOOP

<程序块1>

IF <条件表达式> THEN EXIT END IF

<程序块2> END LOOP;

(2)循环语句LOOP…EXIT WHEN…END LOOP

<程序块1>

EXIT WHEN <条件表达式> <程序块2> END LOOP;

(3)循环语句WHILE…LOOP…END LOOP WHILE <条件表达式> LOOP

<程序块> END LOOP;

(4)循环语句FOR…IN…LOOP…END LOOP FOR <循环变量> IN <初始值> ..<终止值> LOOP

<程序块> END LOOP;

5、练习异常处理语句的使用方法。 EXCEPTION

WHEN <异常情况名> THEN <异常处理代码>

WHEN <异常情况名> THEN <异常处理代码> ……

WHEN OTHERS THEN <异常处理代码>

6、编写PL/SQL程序

(1)判断学号为‘s001’同学的平均成绩的等级,若大于等于90分为优秀,75-89为良好,60-74为及格,否则为不及格。用IF语句和搜索式CASE语句分别实现。

(2)判断当前月份的天数,如果当前月份共28天,则输出‘XX月共28天’,如果当前月份共29天,则输出‘XX月共29天’,如果当前月份共30天,则输出‘XX月共30天’,如果当前月份共31天,则输出‘XX月共31天’,如‘10月共31天!’。用简单CASE语句实现。(提示:可使用返回指定月份最后一天函数LAST_DAY(date),还要用到to_char函数。)

(3)编写PL/SQL程序,使用LOOP循环控制语句的任一种方法计算1—100之间所有偶数之和。

(4)编写PL/SQL程序,查询course表中是否有课程号号为“c005”的记录,如果没有,插入新课程号为c005,课程名称为“嵌入式系统”,学分为4。如果有,显示查询结果。

(5)自定义异常。查询s002的平均成绩,如果少于60分,则抛出异常,提示成绩偏低。

实验二 PL/SQL编程

【开发语言及实现平台或实验环境】

PL/SQL

Oracle 11g 快捷版

【实验目的和要求】

1、熟练掌握PL/SQL程序设计的基本知识。

2、熟练掌握PL/SQL中控制结构的使用。具体包括选择结构语句(IF语句和CASE语句),循环结构(四种循环结构)。

3、熟练使用PL/SQL中系统函数。 4、掌握PL/SQL中异常处理语句的使用

5、掌握PL/SQL中SELECT语句和DML语句的综合运用。

【实验结果与分析】

1、判断学号为‘s001’同学的平均成绩的等级,若大于等于90分为优秀,75-89为良好,60-74为及格,否则为不及格。用IF语句和搜索式CASE语句分别实现。

2、判断当前月份的天数,如果当前月份共28天,则输出‘本月共28天’,如果当前月份共30天,则输出‘本月共30天’,如果当前月份共31天,则输出‘本月共31天’。用简单CASE语句实现。

3、编写PL/SQL程序,使用LOOP循环控制语句的任一种方法计算1—100之间所有偶数之和。

4、编写PL/SQL程序,查询course表中是否有课程号号为“c005”的记录,如果没有,插入新课程号为c005,课程名称为“嵌入式系统”,学分为4。如果有,显示查询结果。

5、 自定义异常。查询s002的平均成绩,如果少于60分,则抛出异常,提示成绩偏低。

【实验思考及总结】

本文来源:https://www.bwwdw.com/article/8s6d.html

Top