Oracle实验五 PL/SQL编程
Oracle实验五 PL/SQL编程
Oracle实验五 PL/SQL编程
熟悉PL/SQL的数据类型和书写规则
熟悉控制结构和游标的使用
编写和运行函数、过程和触发器
编写脚本文件,调试运行脚本文件,并记录结果。
一、在SQL*Plus中编写一个PL/SQL块,功能用于打印学生信息。
在DECLARE部分完成:
建立学生信息记录类型stu_record_type,包括学号,姓名,性别,籍贯,学习成绩和活动成绩。均为可变长字符类型
编写本地子过程:学生信息打印过程PrintStuRecord,把(1)中定义的记录类型作为参数
定义学生信息记录变量stu_record
在BEgin……End部分完成
为stu_record变量的各个元素赋值如下:
学号:‘2001001’
姓名:’李新’
性别:‘m’
籍贯:‘黑龙江省哈尔滨市’
学习成绩:‘Excellent’
活动成绩:‘Good’
对该变量的调用打印过程,输出到屏幕
SET SERVEROUTPUT ON;
DECLARE TYPE stu_record_type is record
(
s_no VARCHAR(10),
s_name VARCHAR(10),
s_sex VARCHAR(10),
s_origin VARCHAR(20),
s_grades VARCHAR(10),
s_activities VARCHAR(10)
);
stu_record stu_record_type;
Procedure PrintStuRecord
as
begin
dbms_output.put_line('学号:' || stu_record.s_no);
dbms_output.put_line('姓名:' || stu_record.s_name);
dbms_output.put_line('性别:' || stu_record.s_sex);
dbms_output.put_line('籍贯:' || stu_record.s_origin);
dbms_output.put_line('学习成绩:' || stu_record.s_grades);
dbms_output.put_line('活动成绩:' || stu_record.s_activities);
end PrintStuRecord;
begin
stu_record.s_no := '2001001';
stu_record.s_name := '李新';
stu_record.s_sex := 'm';
stu_record.s_origin := '黑龙江省哈尔滨市';
stu_record.s_grades := 'Excellent';
stu_record.s_activities := 'Good';
PrintStuRecord;
end;
二、建立对bookinfo表的DML触发器,一旦bookinfo表发生了任何变化,立即触发,对bookinfo表的数据进行统计,结果存储在数据统计表中
如果没有则建立bookinfo表,选择建立在scott用户下
首先需要解锁scott用户
然后修改默认密码
登录到用户scott
表结构为
bookno varchar2(36) Primary key,
bookname varchar2(40) not null,
authorname varchar2(10) not null,
publishtime date,
bookprice float
使用如下代码
create table bookinfo
(
bookno varchar2 (36) Primary key,
bookname varchar2 (40) not null,
authorname varchar2 (10) not null,
publishtime date,
bookprice float
);
运行如下
建立数据统计表major_stats,包含两个字段:书的总数和作者的总数
使用如下的代码 create table major_stats
(
booknumber int,
author int
);
运行结果如下
创建触发器UpdateMajorStats,完成在bookinfo表中插入、删除和修改记录之后,对bookinfo表进行统计,结果存储在(2)建立的major_stats表中
使用如下代码 create or replace TRIGGER UpdateMajorStats
after insert or delete or update
on bookinfo
begin
delete from major_stats;
insert into major_stats(booknumber, author)
select count(bookno), count(distinct author)
from bookinfo;
end;
在bookinfo表中插入、删除和更新信息,再查看major_stats表中数据的变化
插入信息(注意日期需要进行格式化) insert into bookinfo(bookno, bookname, authorname, publishtime, bookprice)
values ('001', 'python', 'zm', to_date('11-01-2021', 'dd-mm-yyyy'), '21') insert into bookinfo(bookno, bookname, authorname, publishtime, bookprice)
values ('002', 'rust', 'lf', to_date('11-11-2022', 'dd-mm-yyyy'), '34')
删除信息
delete from bookinfo where bookno='001';
更新信息
update bookinfo set authorname = 'latex' where bookno = '002';
te from bookinfo where bookno=‘001’;
[外链图片转存中...(img-VY9gks4g-1604056146232)]
更新信息
```sql
update bookinfo set authorname = 'latex' where bookno = '002';
Oracle实验五 PL/SQL编程相关教程
安卓SQLite和SQLiteDataBase的应用
安卓SQLite和SQLiteDataBase的应用 实验步骤: 1、 先将数据写入两个news对象中,方便一会插入数据库,这里定义了一个SetNews类,里面静态方法是插入两条数据到news对象中并返回插入之后的对象 2、重写SQLiteOpenHelper类,以使第一次加载时能创建数据库及表
MYSQL数据库 索引的详细解读 值得一看
MYSQL数据库 索引的详细解读 值得一看 目录 一、索引的概念 1、索引的作用 二、索引的分类 1、普通索引创建的三种方式与删除 2、创建唯一索引与创建的三种方式 3、主键索引与创建的两种方式 4、组合索引 5、全文索引 6、创建索引的原则依据 三、事务的概念 1
MySQL是如何实现事务ACID四个特性的?
MySQL是如何实现事务ACID四个特性的? 事务的实现 要了解事务是如何实现的,必须要先了解下面几个概念: redolog undolog purge group commit 下面将分别介绍。 重做日志用来实现事务的原子性和持久性,主要需要关注下面几个概念点: 日志由两部分组成,一部
Linux实验五:Linux环境下的C语言编程
Linux实验五:Linux环境下的C语言编程 文章目录 一、实验目的: 二、实验要求 三、实验内容 1、编写一段C语言程序使其完成:父进程创建两个子进程,每个进程都在屏幕上显示自己的进程ID号。 2、上机调试下面的程序,观察运行结果,分析原因。 3、利用两个管道
Oracle实验四 SQL语言
Oracle实验四 SQL语言 实验四 SQL语言 掌握在Oracle中添加示例方案的方法 熟练掌握SQL语言的查询功能 掌握SQL Plus常用命令 一、 需要访问HR示例方案中的表,如果机器上没有该示例方案,则运行相关包和相应配置装入HR方案。如果已有HR方案,则跳过该步骤。 将
zzuli第四次javaweb实验
zzuli第四次javaweb实验 页面较为粗糙,毕竟刚学两个月,也没有进行封装。时间有限。此代码仅供交流学习,严禁抄袭!!!代码可能存在一些bug,dl可以通过评论联系我。 MysqlManger.java package link;import java.sql.Connection;import java.sql.DriverMana
SparkSQL存储数据到Parquet:AnalysisException: Parquet data s
SparkSQL存储数据到Parquet:AnalysisException: Parquet data source does not support null data type. 使用SparkSQL(2.4版本)往存储格式为parquet的Hive分区表中存储NullType类型的数据时报错: org.apache.spark.sql.AnalysisException: Parquet data s
64位加法——计算机组成原理实验1
64位加法——计算机组成原理实验1 实验原理图 实验步骤 因为一次最多输入32位数,而要实现64位的加法器,我们采用32位加法器拼接的方式 在输入的时候需要把两个64位数分成高32位和低32位分别输入。 在运算的过程中,先对两个64位数的低32位进行运算,生成低32