oracle实验报告过程、函数和触发器

合集下载

oracle数据库实验报告

oracle数据库实验报告

oracle数据库实验报告《Oracle数据库实验报告》在当今信息化时代,数据库管理系统扮演着至关重要的角色。

Oracle数据库作为全球领先的企业级数据库管理系统,在各行各业都有着广泛的应用。

本次实验旨在通过对Oracle数据库的实验操作,深入了解其基本功能和特点,并探讨其在实际应用中的优势和局限性。

实验一:数据库的创建与连接在实验中,我们首先学习了如何使用SQL命令创建一个新的数据库,并通过用户名和密码连接到该数据库。

通过这一步骤,我们了解了Oracle数据库的基本操作流程,包括数据库的创建、用户的授权和连接等。

实验二:数据表的创建与管理在本次实验中,我们学习了如何使用SQL命令创建数据表,并进行数据的插入、查询、更新和删除操作。

通过这些操作,我们深入了解了Oracle数据库的数据管理功能,包括数据表的设计和维护等。

实验三:索引的创建与优化索引是数据库中非常重要的组成部分,能够提高数据的检索效率。

在本次实验中,我们学习了如何使用SQL命令创建索引,并通过优化查询语句来提高数据库的性能。

这些操作让我们更加深入地了解了Oracle数据库的优化功能,以及如何通过索引来提高数据库的性能。

实验四:备份与恢复数据库的备份与恢复是数据库管理中至关重要的一环。

在本次实验中,我们学习了如何使用Oracle数据库提供的工具进行数据库的备份和恢复操作。

这些操作让我们了解了数据库的灾难恢复功能,以及如何保障数据的安全性。

通过本次实验,我们深入了解了Oracle数据库的基本操作和功能,包括数据库的创建与连接、数据表的管理、索引的优化以及备份与恢复等。

同时,我们也发现了Oracle数据库在实际应用中的优势,如稳定性、安全性和性能优化等方面。

然而,我们也意识到Oracle数据库在一些特定场景下存在一定的局限性,如高昂的成本、复杂的配置和维护等。

总的来说,本次实验让我们更加深入地了解了Oracle数据库的特点和功能,对我们今后的数据库管理工作有着重要的指导意义。

oracle实验报告过程、函数和触发器

oracle实验报告过程、函数和触发器
三、实验软硬件环境
Windows坏境下acle Database 11数据库
四、实验过程(实验步骤、记录、数据、分析)
实验步骤:
(1)创建一个过程avg_sal,用于输出emp表中的某个部门的平均工资,并在PL/SQL匿名块调用该过程输出部门SALES的平均工资;
(2)创建一个函数find_loc,用于返回某个员工所在的工作地点。并调用该函数,显示员工号为7788的工作地点。
(3)创建一个触发器tr_emp_sal,当进行update操作时,员工的工资只能涨不能降,不允许删除员工记录,并修改sal和删除记录,查看相关信息。
1、创建触发器
2、修改sal,查看结果
3、删除记录,查看结果
五、测试/调试及实验结果分析
测试结果基本正常,有些出现异常,经过反复修改后,可以正常测试。
课程名称oracle数据库
实验序号005
实验项目过程、函数和触发器
实验地点
实验学时2学时实验类型验证性
指导教师实验员
专业计算机科学与技术班级
学号姓名
2010年5月19日
成绩:
教师评语
指导教师签名:批阅日期:
一、实验目的及要求
实验目的
通过上机实践熟悉Oracle 11g的对象管理,创建过程、函数和触发器,并进行测试。
六、实验结论与体会
通过上机实践熟悉Oracle 11g的对象管理,创建过程、函数和触发器,并进行测试。
2011年5月19日
二、实验原理与内容
实验内容
(1)创建一个过程avg_sal,用于输出emp表中的某个部门的平均工资,并在PL/SQL匿名块调用该过程输出部门SALES的平均工资;
(2)创建一个函数find_loc,用于返回某个员工所在的工作地点。并调用该函数,显示员工号为7788的工作地点。

oracle实训报告

oracle实训报告

目录一、实践名称 ................................................... - 1 -二、实践题目 ................................................... - 1 -三、实践目的 ................................................... - 1 -四、实践内容与结果 ............................................. - 1 -第一部分 Oracle数据库的操作................................ - 1 - 第二部分 oracle数据库连接................................. - 26 - 第三部分建立oracle数据库应用系统--学生成绩管理系统........ - 28 - 五、实践小结 .................................................. - 34 -一、实践名称Oracle数据库开发二、实践题目(1)Oracle数据库的操作(2)Visual Basic访问Oracle数据库(3)建立一个oracle数据库应用系统---学生成绩管理系统三、实践目的Oracle数据库开发是信息管理与信息系统专业和相关专业本科生的一门实践课。

它的主要任务是在学生已经学过数据库原理与应用的基础上,通过教师的少而精的讲课和逐梯次的大量实际训练,使学生初步掌握数据库管理系统Oracle的基本原理和基本操作,能够运用数据库技术设计Oracle数据库及其应用系统。

学生实践后,应达到:(1)初步掌握Oracle关系数据库语言(2)掌握 Oracle的操作与使用(3)数据库的建立与管理、数据表的建立与操作等(4)PL/SQL语言的使用与编程(5)设计和开发一个小型数据库应用系统四、实践内容与结果第一部分Oracle数据库的操作(1)实践操作1熟悉Oracle运行环境和主要管理工具1.登录到存储管理器中,查看表空间和回滚段中的情况。

oracle大型数据库实验报告4

oracle大型数据库实验报告4

五、思考题及其它1、显示游标和隐式游标在用法上的区别?2、raise语句应该放在PL/SQL块的哪个部分?当在异常和oracle错误之间建立关联时,应该在哪个部分完成?3、实验报告要求本次实验书写两次,分别是(一)和(二)、(三)和(四)实验六:过程、函数、触发器实验学时:4实验类型:设计型一.实验目的及要求1.掌握过程的创建与维护;2.掌握函数的创建与维护;3.掌握触发器的创建于维护;4.了解包的使用。

二、实验主要内容1.过程的创建与维护;2.函数的创建与维护;3.触发器的创建于维护;4.包的使用。

三、实验仪器设备在局域网环境下,有一台服务器和若干台客户机。

服务器成功安装Oracle 11g数据库服务器(企业版),客户机成功安装Oracle 11g客户端软件,网络服务配置正确,数据库和客户端正常工作。

四、实验内容与步骤(一)、过程的创建与维护1、编写一个过程,可以输入一个雇员名,如果该雇员的的职位为PRESIDENT就给他的工资增加1000,如果该雇员的职位为MANAGER,就给他的工资加500,其他职位的雇员工资增加200。

并在SQL*PLUS中调用该过程以修改FORD的工资。

2、创建一个过程avg_sal,用于输出emp表中某个部门的平均工资,并在PL/SQL匿名块中调用该过程输出20号部门的平均工资。

3、从雇员基本信息表(EMP)中统计各部门(DEPTNO)人数后,将结果打印出来。

(选做)CREATE OR REPLACE PROCEDURE SUM_COUNT IS--创建一个游标,查询dept所有的部门编号Dept_cursor %ROWTYPE; --定义一个游标类型的变量--定义一个变量来存储部门人数BEGIN--打开游标LOOPINTO Dept_cursor;--读取游标SELECT COUNT(*) INTO num FROM empWHERE deptno= Dept_cursor.deptno;/*--填充代码,打印输出部门号及其对应的部门人数*/EXIT WHEN %NOTFOUND;--退出循环END LOOP;--关闭游标COMMIT;END;--执行存储过程sum_count(二)、函数的创建与维护1、创建一个函数get_sum_salary,获取某部门的人数(out参数)和工资总和(返回值)。

PL SQL编程 Oracle数据库实验报告

PL SQL编程 Oracle数据库实验报告

PL/SQL编程【实验目的】1.熟悉PL/SQL的数据类型和书写规则2.熟悉控制结构和游标的使用3.编写和运行函数、过程和触发器【实验内容】编写脚本文件,调试运行脚本文件,并记录结果。

1.在SQL*Plus中编写一个PL/SQL块,功能用于打印学生信息在DECLARE部分完成:(1)建立学生信息记录类型stu_record_type,包括学号,姓名,性别,籍贯,学习成绩和活动成绩。

均为可变长字符类型(2)编写本地子过程:学生信息打印过程PrintStuRecord,把(1)中定义的记录类型作为参数(3)定义学生信息记录变量stu_record在BEGIN…END部分完成:(1)为stu_record变量的各个元素赋值如下:学号:‘2001001’姓名:’李新’性别:‘m’籍贯:‘黑龙江省哈尔滨市’学习成绩:‘Excellent’活动成绩:‘Good’(2)对该变量的调用打印过程,输出到屏幕2.建立对bookinfo表的DML触发器,一旦bookinfo表发生了任何变化,立即触发,对bookinfo表的数据进行统计,结果存储在数据统计表中(1)如果没有则建立bookinfo表,选择建立在scott用户下,表结构为(bookno varchar2(36) Primary key,bookname varchar2(40) not null,authorname varchar2(10) not null,publishtime date,bookprice float)(2)建立数据统计表major_stats,包含两个字段:书的总数和作者的总数(3)创建触发器UpdateMajorStats,完成在bookinfo表中插入、删除和修改记录之后,对bookinfo表进行统计,结果存储在(2)建立的major_stats表中(4)在bookinfo表中插入、删除和更新信息,再查看major_stats表中数据的变化【实验结论】编写脚本文件,调试运行脚本文件,并记录结果。

Oracle数据库系统应用开发实用教程文本 ch8实验报告

Oracle数据库系统应用开发实用教程文本 ch8实验报告
例如:对视图进行更新操作,出现错误,请用替代触发器解决。
步骤:
(1)授权给SCOTT用户创建视图的权限,创建视图
conn system/manager1;
grant create view to scott;
conn scott/tiger;
create or replace view view_emp_dept as select empno,ename,job, emp.deptno depno
dbms_output.put_line('雇员的姓名是:'||vfname||' '||vlname);
dbms_output.put_line('雇员的职位是:'||vjob);
dbms_output.put_line('雇员的薪水是:'||nsal);
exception
whenno_data_foundthen
广东科学技术职业学院
计算机工程技术学院(软件学院)
实 验 报 告
专业班级成绩评定______
学号姓名(合作者____号____)教师签名
实验题目存储过程、函数、程序包和触发器第周星期第节
实验目的与要求
1.掌握编写存储过程和调用过程的方法
2.掌握编写函数和调用函数的方法
3.掌握程序包的编写规范
4.掌握执行程序包中过程和函数的方法。
(1)编写存储过程
create or replace procedure pro_emp(emp_id number)
as
vfname varchar2(20);
vlname varchar2(20);
vjob varchar2(20);

《Oracle数据库》实验报告一

《Oracle数据库》实验报告一
(2)要求给出相应的SQL语句。
4、修改表空间stu_tbs
(1)在表空间stu_tbs中添加数据文件stu003.dbf,路径为c:\ ora_data\ stu,大小为10 MB,如果该数据文件已经存在,则被覆盖,数据文件具有自动扩展属性,每次增量为64 KB,最大值为50 MB,且将其修改为脱机状态。
copy c:\oracle\product\10.2.0\oradata\orcl\control01.ctl d:\oracle\product\10.2.0\oradata\orcl\control04.ctl
copy e:\oracle\product\10.2.0\oradata\orcl\control01.ctl e:\oracle\product\10.2.0\oradata\orcl\control05.ctl
熟悉了使用Configuration Assistant创建数据库的过程,实现查询,创建,修改等Oracle语句。
六、教师评语
1、完成所有的实验内容,实验步骤和实验结果基本正确。
2、至少完成主要的实验内容,实验步骤和实验结果基本正确。
3、仅完成部分的实验内容,实验步骤和结果基本正确。
4、虽然完成了主要实验内容,但是实验步骤和结果存在多处重大错误。
四、实验步骤及结果(包含简要的实验步骤流程、结论陈述)
1、创建数据库
(1)选择“Database Configuration Assistant”命令,启动DBCA
(2)进入操作界面,选择“创建数据库”, 设置“全局数据库的名”和“实例名”
(3)为账户设置口令
(4)设置数据库存储类型和存储位置(选择存储类型为“文件类型”,存储位置为“使用模板中的数据库文件位置”)

ORACLE实验报告完结版

ORACLE实验报告完结版

实验报告(三)院系:信息学院课程名称:日期:班级姓名专业信息管理与信息系统学号实验室实验名称Oracle的存储管理与分析(1)成绩评定教师签名实验目的索引实验内容一、请写三个表明oracle读取数据所用的三种方式的SQL语句,并列出它们的执行计划二、以emp为原型,创建一个test表,在test的empno列上创建索引三、分析索引,通过index_stats查看的索引高度,结构等信息四、往test表中删除,插入,更新3-5条记录,再分析索引,查看三所列的索引结构的信息五、往test表中插入600条记录,查看索引结构六、删除500条记录,查看索引结构七、对索引进行合并,查看索引变化八、重构索引,查看索引变化一、请写三个表明oracle读取数据所用的三种方式的SQL语句,并列出它们的执行计划1.全表扫描(full table scan--fts)并行查询可能会使得我们的路径选择采用全表扫描2.通过行ID(ROWID)向表中插入对象时隐含会创建改行ROWID,它是数据行所存储的数据块地址,这样可以以最快的速度找到该行数据,是oracle中读取单行数据最快的方法。

3.使用索引(1)使用索引找到相应ROWID(2)通过找到的ROWID从表中读取相应的数据二、以emp为原型,创建一个test表,在test的empno列上创建索引三、分析索引,通过index_stats查看的索引高度,结构等信息四、往test表中删除,插入,更新3-5条记录,再分析索引,查看三所列的索引结构的信息五、往test表中插入600条记录,查看索引结构这样依次插入到表test中600条记录,再查看索引结构有如下变化:六、删除500条记录,查看索引结构;按照这样删除的方法把插入的600记录删除500条后在查看索引结构:七、对索引进行合并,查看索引变化;八、重构索引,查看索引变化;实验报告(三)院系:信息学院课程名称:日期:班级姓名专业信息管理与信息系统学号实验室实验名称oracle存储管理与优化(2)成绩评定教师签名实验目的日志管理实验内容1查看日志组和日志文件的相关信息(v$log,v$logfile)了解日志组状态真正涵义;2切换日志组,跟踪日志切换的时间频率;3往数据里增加两个日志组,再删除其中的一个,结合日志组的状态,分析哪些类型的日志组不能删除4.往日志组里增加日志成员,再删除添加的日志成员,分析哪些类型的日志文件不能删除;5日志文件的恢复:1.nactive日志损坏清洗日志2.active日志损坏,只要数据库是一致性关闭,与1的恢复一样3.current日志损坏不完全恢复1查看日志组和日志文件的相关信息(v$log,v$logfile)了解日志组状态真正涵义;v$log记录了当前数据库的日志组号、日志序列号、每个日志文件的大小、以字节为单位、每个日志组的成员数量,以及日志组的当前状态。

(Oracle管理)太原理工大学Oracle实验报告

(Oracle管理)太原理工大学Oracle实验报告

实验由本人当时亲自完成
仅供参考,希望可以帮助大家
实验报告
课程名称:大型数据库系统
实验项目:Oracle实用教程
实验地点:逸夫楼202
专业班级:00000000班学号:00000000
学生姓名:氣宇軒昂
指导教师:
2013年13月13日
太原理工大学实验报告
图1.1 安装1图1.2 安装2
图1.3 安装3
图1.5 安装5
安装好后的界面
OEM的界面:
图1.6 oem的登录界面
图1.7 打开后的oem SqlDeveloper的界面:
如上就是创建表的页面,当出现下图时,表示,创建成功。

如上图,表示Emploryees创建成功。

Departmens和Sarary的创建与Emploryees相同。

4.在OEM中删除已创建的表
太原理工大学实验报告
操作结果是Employees中插入例如所需要的数据,如图:
如上图,这是Salary表,看见很是繁琐,因为写完一行之后必须得执行,这样一行一行的
从上图中可以看出Salary 中的所有记录都被删除了。

(2)查询每个雇员的地址和电话。

(2)查询财务部收入在2200元以上的雇员姓名及其薪水详情。

太原理工大学实验报告
最后一个替代system系统用户不能授权,不知为何。

系统权限不能够授权,内置角色却可以授权。

1.使用游标和loop循环来显示所有部门的名称;
太原理工大学实验报告。

《Oracle数据库》实验指导书级

《Oracle数据库》实验指导书级

实验三PL/SQL触发器和存储过程(2学时)【实验目的】(1)了解触发器的类型。

(2)掌握PL/SQL触发器的使用方法。

(3)了解存储过程的使用方法。

(4)掌握存储过程的使用方法。

【实验内容】一、触发器概述1.触发器的类型可以创建被如下语句所触发的触发器:(1)DML语句(DELETE,INSERT,UPDATE);(2)DDL语句(CREATE,ALTER, DROP);(3)数据库操作(SERVERERROR,LOGON,LOGOFF,STARTUP,SHUTDOWN)。

2.触发器的设计规则:(1)作用范围清晰(2)不要让触发器去完成Oracle后台已经能够完成的功能(3)限制触发器代码的行数(4)不要创建递归的触发器(5)触发器仅在被触发语句触发时进行集中的,全局的操作,同用户和数据库应用无关。

3.触发器的创建1)使用CREATE TRIGGER语句创建触发器使用CREATE TRIGGER语句创建触发器的语句格式如下:CREATE [OR REPLACE] TRIGGER name {BEFORE|AFTER }{event [ OR ... ]} ON table [FOR[EACH ]{ROW|STATEMENT}][WHEN(condition)] plsql block|call procedures_statement2)注意事项(1)触发器可以声明为在对记录进行操作之前,在之前(检查约束之前和INSERT,UPDA TE 或DELETE 执行前)或之后(在检查约束之后和完成INSERT,UPDATE 或DELETE 操作)触发.。

(2)一个FOR EACH ROW 执行指定操作的触发器为操作修改的每一行都调用一次。

(3)SELECT 并不更改任何行,因此不能创建SELECT 触发器。

这种场合下规则和视图更适合。

(4)触发器和某一指定的表格有关,当该表格被删除时,任何与该表有关的触发器同样会被删除。

Oracle数据库实验报告

Oracle数据库实验报告

Oracle数据库实验报告第一篇:Oracle数据库实验报告中南林业科技大学实验报告课程名称:Oracle数据库专业班级:姓名:学号:****年**月**日实验一安装和使用Oracle数据库【实验目的】1.掌握Oracle软件安装过程,选择安装组件2.掌握建立Oracle数据库,配置网络连接3.掌握Oracle企业管理器的基本操作4.使用SQL*Plus,登录到实例和数据库5.掌握命令方式的关闭和启动实例及数据库【实验内容】1.查看已安装的Oracle组件2.查看服务,记录下和数据库有关的服务名,将他们设为手动方式,启动相关服务。

3.配置监听器,查看是否在服务中有LISTENER,是否能启动。

4.配置本地net服务,提示:设置正确的服务器地址和端口号。

5.打开SQL*Plus,用SYS和SYSTEM用户名和密码登录。

6.思考题:有几种打开SQL*Plus的方法?分别是什么?7.用命令关闭实例和数据库,记录命令8.用命令以NOMOUNT的方式启动实例,再加载数据库,打开数据库。

【实验结论】1.查看已安装的Oracle组件2.查看服务,记录下和数据库有关的服务名,将他们设为手动方式,启动相关服务。

3.配置监听器,查看是否在服务中有LISTENER,是否能启动。

4.配置本地net服务,提示:设置正确的服务器地址和端口号。

5.打开SQL*Plus,用SYS和SYSTEM用户名和密码登录。

6.思考题:有几种打开SQL*Plus的方法?分别是什么?(1)直接打开 sql plus 即窗口方式(2)cmd 命令行方式(3)WEB 页面中 iSQL*Plus 方式 7.用命令关闭实例和数据库,记录命令 SQL>shutdown immediate8.用命令以NOMOUNT的方式启动实例,再加载数据库,打开数据库。

sql>startup nomount sql>alter database mount;sql>alter database open;sql>startup(1).用SQLplus 命令:show parameters参数名(2).用select [列名] from 表名2.初始化文件有几种?默认的保存位置在哪里?初始化文件有三种:数据文件,日志文件,控制文件;默认的保存位置E:oracleproduct10.2.0oradataorcl4.打开OEM,查看三类物理文件信息三类物理文件:数据文件、控制文件、日志文件数据文件:.DBF 存储表、索引及数据结构信息日志文件:.LOG记录对数据库的所有修改信息,用于恢复控制文件:.CTL二进制文件,记录数据库名、文件标识、检查点5.分别用select命令查询V$parameter动态性能视图,用show 命令查看全局数据库名、实例名、是否启动自动归档、标准数据块大小这四个参数的值,记录命令和结果。

Oracle第七章 过程包函数触发器

Oracle第七章 过程包函数触发器

Oracle 10g管理及应用
2019年5月26日星期日
7.1.3 函数的创建与调用
2.调用函数 在调用函数时,要注意函数的调用要求在表达式中,而不
能直接通过关键词EXECUTE来完成。 注意,在函数的定义中,也可以为形参指定默认值。
Oracle 10g管理及应用
2019年5月26日星期日
7.1.4 删除过程和函数
{BEFORE | AFTER | INSTEAD OF} {DML事件 | DDL事件 | DATABASE事件} ON {[模式.]表 | [模式.]视图 | DATABASE} [FOR EACH ROW [WHEN 触发条件]] [DECLARE
--声明变量;] BEGIN
--触发器执行代码; [EXCEPTIOIN
过程和函数的程序块一旦被成功执行,则在数据库中自动 地存储了相应的对象,在过程和函数创建后,如果想进行修改, 则可以重新执行修改后的创建过程和函数的程序块,但此时必 须在声明时加上“OR REPLACE”关键词。
如果过程和函数不再需要时,最好在数据库中删除对应的 对象,删除过程的语法如下所示:
DROP PROCEDURE 过程名;
1.创建函数
创建函数的基本语法和过程相似,语法如下所示: CREATE OR RELACE FUNCTIONI 函数名
[参数1 {IN | OUT | IN OUT} 类型, 参数2 {IN | OUT | IN OUT} 类型, ……] RETURN 返回类型 { IS | AS} [变量声明] BEGIN --函数体 END [函数名]; 其中,RETURN返回类型是必需的部分,同时在函数体中,最好处理异 常处理。
第七章 过程 包 函数 触发器

Oracle数据库管理第7章 过程、函数、触发器和包

Oracle数据库管理第7章 过程、函数、触发器和包
第7 章
本章要求:
过程、函数、触发器和包

掌握存储过程的创建及执行 掌握函数的定义及调用 掌握触发器的定义及执行 了解程序包的定义及使用
第7 章
主要内容
过程、函数、触发器和包
1.存储过程 2.函数 3.触发器 4.程序包 5.综合实例——创建带参数的存储过程
7.1
存储过程
7.1.1 创建存储过程 7.1.2 存储过程的参数 7.1.3 IN参数的默认值
7.1.2
存储过程的参数
前面所创建的存储过程都是简单的存储过程,它们都没有涉及到参数。Oracle为了增强存储过程 的灵活性,可以实现向存储过程传入参数。参数是一种向程序单元输入和输出数据的机制,存储过程 可以接受多个参数,参数模式包括IN、OUT和IN OUT三种,下面分别进行讲解。 1.IN模式参数 这是一种输入类型的参数,参数值由调用方传入,并且只能被存储过程读取。这种参数模式是最 常用的,也是默认的参数模式,关键字in位于参数名称之后。例如,就下面将声明一个带有IN模式的 存储过程。 【例7-5】 创建一个存储过程,并定义3个in模式的变量,然后将这3个变量的值插入到dept表中,代 码及运行结果如下。
7.1.3
IN参数的默认值
前面的IN参数的值都是在调用存储过程时传入的,实际上,Oracle支持在声明IN参数的同时给 其初始化默认值,这样在存储过程调用时,如果没有向IN参数传入值,则存储过程可以使用默认值 进行操作,下面来看一个例子。 【例7-16】 创建一个存储过程,定义三个IN参数,并将其中的两个参数设置初始默认值,然后将 这个三个IN参数的值插入到dept表中,代码如下。
过程已创建。 -,它存储部门名称
--向dept表中插入记录 --提交数据库

Oracle实验报告之触发器

Oracle实验报告之触发器

实验报告实验名称:使用游标、存储过程和触发器实验课时:2课时实验地点:E305实验时间:2014年5月 21日星期三第14 周实验目的及要求:(1)了解游标的概念和工作原理。

(2)了解存储过程的分类和使用方法。

(3)了解触发器的概念。

(4)学习编写和执行自定义过程。

(5)学习创建和使用触发器。

实验环境:(1)硬件设备:PC机一台(2)操作系统:Windows XP(3)应用工具:Oracle 11g实验内容:(算法、程序、步骤和方法)(1)创建游标mycur,从表employees中读取1号部门的员工姓名,职务。

并输出“员工姓名:XXX,职务:XXX。

”程序代码如下:set serveroutput on;DECLARECURSOR mycur ISSELECT emp_name, titleFROM employeeswhere dep_id=1;BEGINFOR yw IN mycur LOOPdbms_output.put_line('员工姓名:'||yw.emp_Name||'职务:'||yw.title);END LOOP;END;执行结果如下:(2)创建存储过程GetGrade,查询指定员工的工资,使用CASE语句输出其工资等级。

工资小于等于3000,等级为“低”;工资大于3000,小于5000,等级为”中”;工资大于等于5000,等级为高。

并执行该存储过程。

创建存储过程代码如下:create or replace procedure getgrade(yw_depid number)asyw_wage employees.wage%type;yw_grade varchar2(5);beginselect wage into yw_wagefrom employeeswhere emp_id=yw_depid;yw_grade:=casewhen yw_wage<=3000 then '低'when yw_wage>=3000 and yw_wage<5000 then '中'when yw_wage>=5000 then '高'end;dbms_output.put_line('该员工工资等级为'||yw_grade);end;执行存储过程代码如下:execute getgrade(3);call getgrade(3);执行结果如下:(3)创建存储过程UpdateWage,查询指定员工的工资,如果工资小于3000,则加200工资,并提示信息“XX号员工工资已更新。

Oracle数据库基础教程课后实验---实验报告

Oracle数据库基础教程课后实验---实验报告

Oracle数据库基础教程实验报告专业计算机科学与技术姓名李文成学号 2010指导老师肖卓宇实验一创建数据库和表目的与要求(1)了解oracle数据库的逻辑结构和物理结构。

(2)了解Oracle Enterprise Manager的使用情况。

(3)学习关闭和启动数据库实例的方法。

(4)学会使用SQL语句创建数据库的方法。

(5)学会使用SQL语句删除数据库的方法。

实验准备首先要了解Oracle数据库的逻辑结构,包括方案对象,数据块、区间、段、和表空间等。

数据库由若干个表空间组成,表空间由表组成,表由段组成,段由区间组成,区间则由数据块组成。

Oracle数据库的物理结构由构成数据库的操作系统文件所决定。

每个Oracle数据库都由3种类型的文件组成:数据文件、日志文件和控制文件。

这些数据库文件为数据库信息提供真正的物理存储。

Enterprise Manager 10g是Oracle 10g提供的新的管理工具,简称EM。

使用它可以完成启动、关闭数据库,创建、删除数据库等功能。

只有系统管理员或拥有CREATE DATABASE权限的用户才能创建数据库。

可以在Enterprise Manager 中通过图形界面创建数据库,也可以使用CREATE DATABASE语句创建数据库。

实验内容oracle 服务器端的安装先解压10201_client_win32.zip压缩包,双击setup.exe。

如下图:稍等之后进入欢迎界面,如下图:点击下一步选择“管理员”安装类型,点击下一步:选择安装的详细目录后点击下一步。

点击安装:选择执行典型配置:点击下一步:完成。

创建数据库使用OEM创建表图1-1创建Employees表图1-2成功创建Employees表图1-3成功删除Employees表图1-4创建Departments表图1-5成功创建Departments表图1-6 成功删除Departments表图1-7创建Salary表图1-8成功创建Salary表图1-9成功删除Salary表在PL/SQL语句创建表1.创建Employees表create table Employee(EmployeeID char(6) NOT NULL PRIMARY KEY,Name char(10) NOT NULL,Bithday date N OT NULL,Sex number(1) NOT NULL,Address char(20) NULL,Zip char(6) NULL,PhoneNumber char(12) NULL,DepartmentID char(3) NOT NULL REFERENCES Departments(DepartmentID))tablespace users;图1-10 使用SQL语句创建Employees表2.创建Departments表create table Departments(DepartmentID char(3) NOT NULL PRIMARY KEY, Departmentname char(20) NOT NULL,Note varchar2(100) NULL)tablespace users;图1-11 使用SQL语句创建Departments表3.创建Salary表create table Salary(EmployeeID char(6) NOT NULL PRIMARY KEY,InCome number(8,2) NOT NULL,OutCome number(8,2) NOT NULL)tablespace users;图1-11 使用SQL语句创建Salary表实验二角色和用户管理目的与要求(1)了解Oracle数据库用户和角色的概念。

Oracle数据库实验触发器

Oracle数据库实验触发器

实验报告课程名称:Oracle数据库实用教程实验项目:触发器姓名:专业:计算机科学与技术班级:学号:计算机科学与技术学院年月日哈尔滨理工大学计算机科学与技术学院实验报告实验项目名称:触发器一、实验目的掌握各类触发器的语法及使用方法。

二、实验内容1、创建一触发器,实现某个指定的业务规则并测试2、创建一触发器,实现完整性约束3、创建一触发器,实现指定的安全性控制,比如限定时间、限定用户或其他规则4、用数据库触发器实现两个数据库表数据的自动同步5、创建并测试替代触发器6、创建并测试系统事件触发器7、查看当前用户中已经定义的触发器,并删除所有自定义的的触发器分别创建DML触发器、DDL触发器及系统事件触发器。

三、实验截图与部分代码1、使用用触发器实现业务规则:除销售员外,雇员工资只增不减使用用触发器实现业务规则:除销售员外,雇员工资只增不减。

并更新记录测试。

CREATE OR REPLACE TRIGGER check_sal_empBEFORE UPDATE OF sal ON empREFERENCING OLD AS old NEW AS newFOR EACH ROWWHEN (new.job != 'SALESMAN' AND new.sal<old.sal)BEGINRAISE_APPLICATION_ERROR(-20504,'除销售员外,雇员工资只增不减!');END;/UPDATE emp SET sal=100 WHERE EMPNO=7369;2、限定只有SYS用户在工作时间才可删除和修改对象。

CONN sys/wawawa@oooo AS SYSDBACREATE OR REPLACE TRIGGER drop_alter_checkBEFORE DROP OR ALTERON DATABASEBEGINIF (TO_CHAR (SYSDATE,'DY') IN ('星期六','星期日')) OR(TO_CHAR(SYSDATE,'HH24') NOT BETWEEN '08' AND '17') THEN RAISE_APPLICATION_ERROR (-20602,'不能在非工作时间删除或修改对象');END IF;IF USER!='SYS' THENRAISE_APPLICATION_ERROR(-20601,'没有删除或修改对象的权限!');END IF;END;/CONN scott/wawawa@ooooDROP TABLE emp;3、为SCOTT用户建立一触发器,记载该用户的登录和退出动作。

Oracle触发器,过程等的实验

Oracle触发器,过程等的实验

实验四:PL/SQL程序设计一、实验目的◆掌握PL/SQL程序设计基本技巧,包括基本数据类型、表类型、数组类型、匿名程序块、控制语句、PL/SQL中使用SQL语句、游标、错误处理等。

◆熟悉和掌握PL/SQL中关于存储过程、函数、包和触发器程序设计技术。

二、实验内容某餐饮系统数据库,请创建如下各数据表,并实现如下存储过程、函数、包和触发器等功能设计,将程序脚本保存到文本文件Source.sql中:(1)菜肴类别表MK(菜肴类别编号MKid,菜肴类别名称MkName),菜肴类别名称:鱼类、蔬菜类、凉菜类、肉类、主食类和酒水类等。

(2)菜单信息表MList(菜肴编号Mid,菜肴名称Mname,菜肴类别MKid,菜肴单价Mprice,菜肴成本单价Mcost,更新日期Mdate)。

(3)餐台类别表DK(餐台类别编号DKid,餐台类别名称DkName),餐台类别:包间和散台等。

(4)餐台信息表Dinfo (餐台编号Did,餐台名称Dname,餐台类别DKid,座位数Dseats,更新日期Ddate)。

(5)消费单主表C (消费单号Cid,餐台编号Did,消费开始时间StartTime,结账时间EndTime,消费金额合计Smoney,盈利金额合计SPsum),其中,消费金额合计=消费单明细表CList中该消费单号的所有消费记录的消费金额的合计,即SUM(消费金额)或SUM(菜肴单价×消费数量),盈利金额合计=消费单明细表CList中该消费单号的所有消费记录的盈利合计,即SUM((菜肴单价 - 菜肴成本单价)×消费数量)。

(6)消费单明细表CList (消费单号Cid,序号Sid,菜肴编号Mid,菜肴名称Mname,消费数量Cqty,菜肴单价Mprice,菜肴成本单价Mcost,消费金额Cmoney) ,消费金额=消费数量×菜肴单价;消费数量为正数是正常点菜,消费数量为负数是退菜,三、实验步骤及相关程序截图3.1 创建表空间RESTAURANT,创建用户DINER3.1.1 创建表空间RESTAURANT,大小10M。

数据库oracle实验5

数据库oracle实验5

数据库oracle实验5实验五存储过程与触发器一、实验目的(1)掌握Oracle数据库编程语言PL/SQL的基础知识。

(2)掌握游标、存储过程和触发器的创建,使用方法。

(3)了解使用高级语言连接数据库的技术、基本方法,了解ODBC、ADO和JDBC的技术。

二、实验内容在实验一、实验二创建的表中用PL/SQL语言完成以下内容:1.创建存储过程,根据调用时提供的学生姓名查询该学生所修课程的课程信息,将课程号和课程名输出到输出窗口,并给出函数调用语句块。

2.创建存储过程,统计指定学生修课的平均成绩和选课门数,将统计结果用输出参数传递给主程序,在PL/SQL主程序中调用存储过程,输出过程的返回结果。

3.创建存储过程,在学生表Student中插入一条完整的元组。

4.创建存储过程,将指定零件的重量增加指定的值。

5.创建存储过程,根据指定范围查询供应量在指定范围内的零件名称和供应商名,将结果输出到输出窗口,并给出函数调用语句块。

6.(1)删除SPJ关系中所有数据。

(2)在插入和修改SPJ表中QTY属性列的值时用触发器实现约束:如果是北京的供应商,供应任何零件的数量不能少于300,如果少于则自动改为300。

(3)在SPJ表中录入值进行验证。

7.(1)删除SC关系中的所有数据。

(2)在SC关系中增加新属性列Status,用来记录课程成绩的等级。

(3)用触发器实现自动记录成绩等级,当插入和修改grade列的值时,如果grade 在0-59分,status自动填写为“不合格”;grade在60-69分,status自动填写为“合格”;grade在70-89分,status自动填写为“良好”;grade在90以上status自动填写为“优秀”。

(4)在SC表中录入值进行验证。

8.创建触发器,实现在转专业记录表change_major中自动登记转专业信息,即当修改学生表中属性列major的值时,系统自动在change_major中插入一条转专业的信息(注:change_major中的id属性列可设置为自动增长,具体参照课堂讲解的例题)。

Oracle实验三实验报告

Oracle实验三实验报告

实验三 oracle对象管理及使用一、实验目的及要求掌握Oracle的常用对象的操作方法。

会使用常用对象解决一些实际问题。

二、实验主要内容(1)表结构的建立、修改、查看、删除操作。

(2) 索引的建立、修改、查看、删除操作。

(3) 视图的建立、查询、修改、删除操作。

(4) 同义词的建立、查询、修改、删除操作,比较对同义词的操作与对原数据库对象的操作是否一致。

(5) 掌握序列的建立、查询、修改、删除操作,利用序列向数据库表中插入数据。

三、实验仪器设备在局域网环境下,有一台服务器和若干台客户机。

服务器成功安装Oracle 11g数据库服务器(企业版),客户机成功安装Oracle 11g客户端软件,网络服务配置正确,数据库和客户端正常工作。

四、实验步骤1.创建表结构利用命令行方式将下列各表建立到员工医疗保险系统数据库中。

表结构如附录员工医疗保险系统表1-表7所示。

2.查看表结构(2) 利用SQL*Plus或PL/SQL Developer从数据字典DBA_TAB _COLUMNS查看员工医疗保险系统所有表的字段信息。

(3) 利用SQL*Plus或PL/SQL Developer从数据字典DBA_ CONSTRAINTS查看员工医疗保险系统所有表的约束信息。

3.修改表结构(1) 利用SQL*Plus或PL/SQL Developer将表“staff_sql”重新命名为“staff_sql0”。

(2) 利用企业管理器为“staff_sql0”表添加“age INT”字段,利用DESC命令查看“staff_sql0”表的字段信息。

(3) 利用SQL*Plus或PL/SQL Developer为“staff_sql0”表添加“salary NUMBER(5,2)”、“salary_add NUMBER(3,1)”两个字段,利用DESC命令查看“staff_sql0”表的字段信息。

(4) 利用SQL*Plus或PL/SQL Developer向“staff_sql0”表添加“sname”字段惟一性约束,从数据字典DBA_CONSTRAINTS查看“staff_sql0”表的约束信息。

Oracle数据库 实验报告

Oracle数据库 实验报告
2.实验内容
在SQL*PLUS或PL/SQL Developer工具中编写PL/SQL的简单程序,熟悉PL/SQL的编程环境和代码结构。实现与Oracle数据库交互,并捕获和处理常见系统异常和用户自定义异常。
3.主要仪器设备及软件
1)PC
2)ORACLE数据库
-------------------------------------------------------------------------
实现下面功能:
使用游标实现:将某门课程高于平均分的学生的姓名,课程名,成绩格式化输出。
3.主要仪器设备及软件
1)PC
2)ORACLE数据库
-------------------------------------------------------------------------
实验一 了解ORACLE环境,使用ORACLE数据库实用工具
( 验证性实验 4学时)
1.目的要求:
了解ORACLE数据库的各个常用工具软件
2.实验内容:
在ORACEL数据库下使用SQL*PLUS ,SQL*PLUS Worksheet,PL/SQL Developer工具,企业管理器等实用工具与Oracle交互。并在企业管理器中观察ORACLE的底层存储原理。在PL/SQL Developer中书写简单的SQL语言。
3.主要仪器设备及软件
1)PC
2)ORACLE数据库
-------------------------------------------------------------------------
实验六 触发器,序列及同义词
( 验证性实验 6学时)
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
课程名称oracle数据库
实验序号005
实验项目过程、函数和触发器
实验地点
实验学时2学时实验类型验证性
指导教师实验员
专业计算机科学与技术班级
学号姓名
2010年5月19日
成绩:
教师评语
指导教师签名:批阅日期:
一、实验目的及要求
实验目的
通过上机实践熟悉Oracle 11g的对象管理,创建过程、函数和触发器,并进行测试。
(3)创建一个触发器tr_emp_sal,当进行update操作时,员工的工资只能涨不能降,不允许删除员工记录,并修改sal和删除记录,查看相关信息。
1、创建触发器
2、修改sal,查看结果
3、删除记录,查看结果
五、测试/调试及实验结果分析
测试结果基本正常,有些出现异常,经过反复修改后,可以正常测试。
三、实验软硬件环境
Windows坏境下Oracle Database 11数据库
四、实验过程(实验步骤、记录、数据、分析)
实验步骤:
(1)创建一个过程avg_sal,用于输出emp表中的某个部门的平均工资,并在PL/SQL匿名块调用该过程输出部门SALES的平均工资;
(2)创建一个函数find_loc,用于返回某个员工所在的工作地点。并调用该函数,显示员工号为7788的工作地创建一个过程avg_sal,用于输出emp表中的某个部门的平均工资,并在PL/SQL匿名块调用该过程输出部门SALES的平均工资;
(2)创建一个函数find_loc,用于返回某个员工所在的工作地点。并调用该函数,显示员工号为7788的工作地点。
(3)创建一个触发器tr_emp_sal,当进行update操作时,员工的工资只能涨不能降,不允许删除员工记录,并修改sal和删除记录,查看相关信息。
六、实验结论与体会
通过上机实践熟悉Oracle 11g的对象管理,创建过程、函数和触发器,并进行测试。
2011年5月19日
相关文档
最新文档