数据库实验七八1

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验七触发器的建立与使用

一.实验目的:

理解并掌握利用Oracle11g 或者SQL Server 数据库库服务器的触发器的建立与使用,并理解其概念以及内部工作机制、出发条件。能够熟悉用Oracle11g 或者SQL SERVER的查询分析器以及向导进行触发器脚本程序的书写,理解inserted表和deleted表的用途。

二.实验属性:

设计性。

三.实验要求

1、设置一个触发器,该触发器仅允许“dbo”用户可以删除student表内数据的,否则出错。

2、设置一个针对student表的触发器,当有人操作该列值时,触发器将自动将该操作者的名称和操作时间记录在日志表内,以便追踪。

3、针对student表写一个DELETE触发器。

4、针对student表写一个UPDATE触发器。

四.实验步骤

1、创建一个触发器,对turing1用户下的sc表,不允许删除学号为200400812142的学生记录。

在数据字典中查看已经定义的触发器

验证设置的触发器是否起作用

删除触发器:

2、创建一个触发器,对turing1用户下的student表,不允许更新'计科系' 的学生记录。

在数据字典中查看已经定义的触发器

验证设置的触发器是否起作用

删除触发器

实验八存储过程建立与调用

一.实验目的:

对于Oracle11g,掌握Oracle11g的存储过程的建立。使用SQL PLUS和SQL Developer进行存储过程的建立。

对于SQL Server,理解并掌握利用SQL Server 数据库库服务器的存储过程的建立与调用,并理解概念。能够熟悉用数据库一种开发平台进行存储过程的调用。

二.实验属性:

设计性。

三.实验仪器设备及器材:

1.安装有windows操作系统计算机。

2.安装有Oracle11g或SQL Server的计算机。

3.安装有Visual Studio .net和Java编译器(eclipse、

Netbean等)的编译器。

4.计算机具备网络环境。

四.实验要求

1、利用存储过程,给student表添加一条学生信息。

2、利用存储过程从student、course、sc表的连接中返回所有学生的学号、姓名、所选课程及成绩。

3、用存储过程查找“刘刚”的学号、所选课程、成绩。

4、用存储过程查找姓“李”并且性别为“男”的学生的学号、

所选课程、成绩。

5、利用存储过程计算出平均成绩大于k分(0

的学号、姓名。

以上要求需要与.net和Delphi开发平台结合,调用所建立的存储过程,将结果显示出来,可以在一个工程里完成,也可以在多个工程里完成。

6. 提交实验报告要分别进行叙述。

五.实验步骤及过程

1、利用存储过程,给student表添加一条学生信息。

create or replace procedure turing.Insert_student(

s_sno in varchar2,

s_sname in varchar2,

s_ssex in varchar2,

s_sage in number,

s_sdept in varchar2)

as

begin

insert into turing.student(sno,sname,ssex,sage,sdept)

values(s_sno,s_sname,s_ssex,s_sage,s_sdept);

end Insert_student;

/

2、利用存储过程从student、course、sc表的连接中返回所有学生的学号、姓名、所选课程及成绩。

3、用存储过程查找“刘波”的学号、所选课程、成绩。

create or replace procedure turing.liuboinfo(

s_sno out student.sno%type,

s_sname out student.sname%type,

c_cname out ame%type,

sc_grade out sc.grade%type)

as

begin

select student.sno,student.sname,ame,sc.grade

into s_sno,s_sname,c_cname,sc_grade

from turing.student,turing.course,turing.sc

where student.sno=sc.sno and

o=o and

sname='刘波';

end liuboinfo;

/

4、用存储过程查找姓“李”并且性别为“男”的学生的学号、所选课程、成绩。

create or replace procedure turing.liinfo

as

s_sno student.sno%type;

s_sname student.sname%type;

c_cname ame%type;

sc_grade sc.grade%type;

begin

select student.sno,student.sname,ame,sc.grade

into s_sno,s_sname,c_cname,sc_grade

from turing.student,turing.course,turing.sc

相关文档
最新文档