实验五 PLSQL编程

🕺作者: 主页

我的专栏
C语言从0到1
探秘C++
数据结构从0到1
探秘Linux

😘欢迎关注:👍点赞🙌收藏✍️留言

🏇码字不易,你的👍点赞🙌收藏❤️关注对我真的很重要,有问题可在评论区提出,感谢阅读!!!

文章目录

实验五 PL/SQL编程

【实验目的】

  1. 熟悉PL/SQL的数据类型和书写规则
  2. 熟悉控制结构和游标的使用
  3. 编写和运行函数、过程和触发器

【实验内容】

编写脚本文件,调试运行脚本文件,并记录结果。

一、本地子程序的编写及调试

  1. 编写一个PL/SQL块,功能用于打印学生信息。整个程序的具体要求如下:
  • 在DECLARE部分完成:
    1. 自定义学生信息记录类型stu_record_type,包括学号,姓名,性别,籍贯,学习成绩和活动成绩。每个元素均为可变长字符类型
  1. 定义学生信息记录变量stu_record
  1. 编写带一个形参的本地过程:学生信息打印过程PrintStuRecord(x stu_record_type),把形参x定义为(1)中记录类型。这个过程的代码用于实现将形参x的每个元素打印输出(提示:用dbms_output.put_line过程)。
  • 在BEGIN...END部分完成:
    1. 为stu_record变量的各个元素赋值如下:
sql 复制代码
学号:'2001001'
姓名:'李新'				
性别:'m'		
籍贯:'黑龙江省哈尔滨市'
学习成绩:'Excellent'			
活动成绩:'Good'
  1. 调用本地过程,用stu_record变量作为实参
  1. 运行这个PL/SQL程序,查看并记录运行结果

注:本地子程序只在块内使用,不能存在共享缓冲区中,要多次使用需要多次编译

二、函数的编写及调试

  1. 编写一个函数f_pjgz,有一个数值型参数v_deptno,根据函数调用时输入部门号,来查询scott用户下emp表中该部门所有员工的平均工资,这个平均工资作为函数的返回值。
    1. 登录scott用户
  1. 编写程序
  1. 创建函数
  1. 用select语句调用该函数,用来查询部门号为10的员工平均工资

三、触发器程序的编写及调试

  1. 建立对bookinfo表的DML触发器,一旦bookinfo表发生了任何变化,立即触发,对bookinfo表的数据进行统计,结果存储在数据统计表中
    1. 如果没有则建立bookinfo表,选择建立在scott用户下,表结构为
sql 复制代码
(
  bookno  varchar2(36) Primary key,
  bookname  varchar2(40) not null,
  authorname  varchar2(10) not null,
  publishtime  date,
  bookprice  float
)
  1. 建立数据统计表major_stats,包含两个字段:书的总数和作者的总数
  1. 向其中插入数据
  1. 创建触发器UpdateMajorStats,完成在bookinfo表中插入、删除和修改记录之后,对bookinfo表进行统计,结果存储在(2)建立的major_stats表中
  • 编写触发器程序
  • 创建触发器
  1. 在bookinfo表中分别进行插入、删除和更新操作,每种操作执行后再查看bookinfo表和major_stats表中数据的变化
    1. 插入


  1. 删除
  1. 修改

这里我没有再修改了,其实修改作者名才是更好的选择,因为可以引起major_stats的变化

【实验总结】

一、本地子程序的编写及调试:

在本地子程序的部分,我们成功地完成了以下任务:

  1. 定义了学生信息记录类型stu_record_type,包括学号,姓名,性别,籍贯,学习成绩和活动成绩。
  2. 定义了学生信息记录变量stu_record。
  3. 编写了带一个形参的本地过程PrintStuRecord,用于打印学生信息。

在BEGIN...END部分,我们完成了以下任务:

  1. 为stu_record变量的各个元素赋值。
  2. 调用了本地过程,将stu_record变量作为实参传入。

成功运行这个PL/SQL程序后,我们查看并记录了运行结果。通过这个实验,我们熟悉了PL/SQL的数据类型和书写规则,以及掌握了本地子程序的编写和调试方法。

二、函数的编写及调试:

我们编写了一个名为f_pjgz的函数,它接收一个部门号作为参数,并根据输入的部门号查询scott用户下emp表中该部门所有员工的平均工资,然后返回这个平均工资作为函数的返回值。我们成功地创建了这个函数,并使用select语句调用了该函数来查询部门号为10的员工平均工资。

通过这个实验,我们熟悉了函数的编写和调试方法,并掌握了如何在PL/SQL中创建函数以及如何使用函数进行数据查询和处理。

三、触发器程序的编写及调试:

我们首先建立了bookinfo表和数据统计表major_stats,并向major_stats表中插入了数据。然后,我们编写了触发器UpdateMajorStats,用于在bookinfo表中插入、删除和修改记录之后,对bookinfo表进行统计,结果存储在major_stats表中。

在实验的最后阶段,我们分别进行了对bookinfo表的插入、删除和更新操作,每次操作执行后都查看了bookinfo表和major_stats表中数据的变化。通过这个实验,我们熟悉了触发器程序的编写和调试方法,以及掌握了在PL/SQL中创建触发器来实现特定功能的步骤和技巧。

总的来说,通过这次实验,我们达到了熟悉PL/SQL的数据类型和书写规则,掌握编写和运行函数、过程和触发器的目的。

相关推荐
i***27955 分钟前
nacos2.3.0 接入pgsql或其他数据库
数据库
2501_9412362111 分钟前
使用PyTorch构建你的第一个神经网络
jvm·数据库·python
Deamon Tree19 分钟前
kafka延迟队列是怎么实现的
数据库·kafka·linq
o***369325 分钟前
【玩转全栈】----Django基本配置和介绍
数据库·django·sqlite
裤裤兔29 分钟前
linux提取指定前缀文件到其他文件夹
linux·运维·服务器·bash·终端
2501_941111341 小时前
实战:用OpenCV和Python进行人脸识别
jvm·数据库·python
q***04051 小时前
MySQL 数据类型详解:TINYINT、INT 和 BIGINT
数据库·mysql
e***58231 小时前
MySQL如何执行.sql 文件:详细教学指南
数据库·mysql
z***3351 小时前
redis清理缓存
数据库·redis·缓存
CS_浮鱼1 小时前
【Linux】进程间通信
linux·运维·数据库