oracle实验五

oracle实验五
oracle实验五

实验五视图和索引

实验五 触发器操作实验

实验五触发器操作实验 一、实验目的和要求 1、掌握SQL Server中的触发器的使用方法; 二、实验内容和步骤 1、在学生表student上建立一个DELETE类型的触发器tr_delete,触发动作是显示信息“已删除学生表中的数据”。 2、创建名为为tr_delete1的触发器,要求实现如下功能:当删除课程表course中某一门课程的记录时,级联删除成绩表sc中有关此课程的记录。 3、创建名为tr_delete2的触发器,要求实现如下功能:当修改课程表course中某一门课程的课程号时,级联修改成绩表sc中有关此课程的课程号。 4、创建名为tr_delete3的触发器,要求如下:当同时修改student表中的姓名和性别字段时,提示用户“不能同时修改姓名和性别字段”,并撤销此次修改操作。 5、在学生表student上建立一个名为tr_sno的触发器。该触发器将被操作update所激活,将不允许用户修改表的sno字段。 二、实验环境 1.Windows7+SQL 三、调试过程 1.删除出错(级联删除) 修改:(删除sc表外键数据后再删student表)

2.更新出错(级联更新) 修改: 四、实验结果 1.

2. 3.

4. 5.

五、总结 通过此次实验: 1.本人加深对SQL和Transact-SQL语言的查询语句的理解; 2.简单了解了触发器的使用; 3.对级联删除有了再一步的理解,但是对于级联更新的处理还是不够,例如第五题依 旧没解决调试出现的约束冲突问题 六、附录 /************************************************************ 1、在学生表student上建立一个DELETE类型的触发器tr_delete,触发动作是显示信息“已删除学生表中的数据”。 *************************************************************/ create trigger tr_delete on Student after delete as begin print'已删除学生表中的数据' end delete from sc where sno='95011' delete from student where sno='95011' drop trigger tr_delete insert into student values('95011','王一鸣',20,'男','计算机系','福州市') insert into sc(sno,cno,grade)

Oracle实验报告

Oracle数据库实验报告 实验一:Oracle 10g安装卸载及相关工具配置 一、实验目标: 安装Oracle 10g,了解OEM,通过DBCA安装数据库,通过DBCA删除数据库,sqldeveloper连接数据库,卸载oracle 10g。 二、实验学时数 2学时 三、实验步骤和内容: 1、安装Oracle10g(默认安装数据库) 双击setup.exe, 选择基本安装,安装目录D:盘,标准版,默认数据库orcl,口令bhbh。 进入先决条件检查界面时:网络配置需求选项不用打勾,直接下一步,是。 直到安装成功。 2、登陆和了解OEM 主要是已网页的形式来对数据库进行管理。

http://主机IP:1158/em 用户名:sys 口令:bhbh 身份:sysdba 或者 用户名:system 口令:bhbh 身份:normal 3、通过DBCA删除已安装的默认数据库orcl 程序->Oracle - OraDb10g_home1->配置和移植工具->Database Configuration Assistant->删除数据库->…… 4、通过DBCA安装数据库xscj 程序->Oracle - OraDb10g_home1->配置和移植工具->Database Configuration Assistant->创建数据库->…… 5、sqldeveloper连接数据库 打开sqldeveloper,新建连接 连接名:system_ora 用户名:system 口令:bhbh 主机名:本机计算机名 SID:xscj 测试,显示成功,连接,保存。

6、卸载oracle 10g Windows下 1>停止所有Oracle服务,点Universal Installer卸载 2>删除注册表中的所有关于Oracle项 在HKEY_LOCAL_MACHINE\SOFTWARE下,删除Oracle目录 3>删除硬盘上所有Oracle文件。 (1)Oracle安装文件 (2)系统目录下,在Program files文件夹中的Oracle文件 四、上机作业 根据实验步骤完成逐个实验目标中的任务。 五、心得体会 通过这次的实验,我了解了oracle数据库的情况。懂得了数据库就是把数据存储在一个类似与仓库的地方,需要用时才从数据库里调出来。通过上机实践,知道了装数据库和卸载数据库,并且学会了怎样连数据库。 实验二:Oracle 10g手工建数据库 一、实验目标: 安装Oracle 10g数据库环境,手工建立数据库;通过Net Configuration Assistant建立监听,使用sqldeveloper连接数据库测试。 二、实验学时数 2学时 三、实验步骤和内容: 先安装好Oracle 10g数据库环境(不安装默认数据库)。 1.创建好相关的目录

实验六 触发器实验报告

实验五 触发器实验报告 [实验目的] 1. 理解Oracle 触发器的种类和用途 2. 掌握行级触发器的编写 [预备知识] 1. PL/SQL 程序设计 [实验原理] 1. 建立触发器 CREA TE [OR REPLACE] TRIGGER <触发器名> BEFORE|AFTER INSERT|DELETE|UPDA TE OF <列名> ON <表名> [FOR EACH ROW] WHEN (<条件>) ON 子句中的名称识别与数据库触发器关联的数据库表 触发器事件指定了影响表的 SQL DML 语句 ( INSERT 、 DELETE 或 UPDA TE) AFTER 指定了触发器在处理完成后触发 BEFORE 指定了触发器在处理完成前触发 默认情况下,触发器每个表触发一次 FOR EACH ROW 选项指定触发器每行触发一次(即触发器为行级触发器) 要使触发器触发,WHEN 子句中布尔型表达式的值必须判定为 TRUE 可以将 REPLACE 添加到 CREA TE 语句以自动删除和重建触发器 2. 行级触发器中引用表数据 在行级触发器中,使用伪记录来表示旧数据:old 和新数据:new 引用示例::new.customer_name, :old.customer_name 3. 行级触发器中的谓词 在一个多条件触发的触发器中,使用谓词可以区分当前触发的操作的类型:触发事件 :old :new Insert 无定义,所有字段都是NULL 该语句完成后插入的值 Update 更新前该行的旧值 更新后该行的值 Delete 删除前该行的值 无定义,所有字段

实验2 Oracle数据库体系结构_V2013

实验2 Oracle数据库体系结构 【实验目的与要求】 ?熟悉Oracle数据库的物理结构 ?理解Oracle的工作机制 ?理解Oracle的软件结构 【实验内容与步骤】 2.0 实验准备 以系统管理员身份登入到数据库。 2.1 物理存储结构 2.1.1 获取Oracle数据库各类物理文件信息 1.数据文件 数据文件的详细信息记录在数据字典视图V$DataFile中,可通过查询语句获取数据文件相关信息。 查看数据文件名称:可通过如下查询语句查看数据文件名称和存放位置 请给出运行结果截图:

练习:用desc命令查看V$datafile视图的结构,并试着查询更详细的信息。 2.操作数据文件 (1) 创建数据文件 Oracle中,创建数据文件即是借用Alter Tablespace…ADD…语句,将数据文件添加挂接到指定的表空间中。 为USERS表空间添加一个数据文件,名称为USERS_XX.DBF(XX为学号最后两位),大小为20MB。如: 请给出运行结果截图:

打开指定目录(即C:\),查看是否存在文件USERS_XX.DBF? 请给出结果截图: 查询V$datafile视图,获取数据文件USERS_XX.DBF大小、位置等相关信息。 请给出结果截图: (2) 创建数据文件 修改数据文件使用Alter Database Datafile…命令。 修改USERS表空间中的USERS_XX.DBF为自动扩展方式,每次扩展5MB,最大为100MB。如: 请给出结果截图: 查询V$datafile视图,获取数据文件USERS_XX.DBF大小、扩展方式、位置等相关信息。确定数据文件是否修改。 请给出结果截图: (3) 重命名数据文件: 重命名数据文件使用alter tablespace …Rename datafile…命令。 将表空间USERS中的数据文件USERS_XX.DBF更名为UserData_XX.dbf。

Oracle实验指导书

实验一 Oracle查询工具的使用 一、目的和要求: 1.掌握SQL*Plus工具的使用 2.掌握iSQL*Plus工具的使用 二、实验内容: 1.点击“开始”->“运行”,输入cmd命令进入DOS环境,然后执行SQL PLUS命令登录 数据库,并使用CONNECT命令切换当前的连接用户,具体操作如下: (1) SQL PLUS system/密码 (2) Connect sys/密码 as sysdba (3) Alter user scott account unlock identified by tiger; (4) Connect scott/tiger@orcl (5) Exit 2.在浏览器中输入以下网址: http://localhost:5560/isqlplus 三、分析与思考

实验二 SQL语句基本查询语句 一、实验目的: 1.掌握select语句的基本语法 2.掌握常用函数的使用 3.了解格式化查询结果的常用命令 二、实验内容: 使用scott下的emp表和dept表,完成以下操作: 1.查询部门编号是20的员工信息。 2.查询工作为CLERK的员工的员工号、员工名和部门号。 3.查询奖金COMM高于工资sal的员工信息。 4.查询奖金高于工资20%的员工信息。 5.查询部门编号是10并且工作为MANAGER的员工和部门编号是20并且工作为CLERK 的员工的信息。 6.查询工作不是MANAGER和CLERK,并且工资大于或等于2000的员工信息。 7.查询有奖金的员工信息。 8.查询所有员工的人数和他们的平均工资。 9.查询没有奖金或奖金低于100的员工信息。 10.查询最近两年入职的员工信息。 11.查询工龄大于或等于10年的员工信息。 12.查询员工信息,要求以首字母大写的方式显示所有员工的姓名。 13.查询员工名正好为6个字母的员工信息。 14.查询员工名字中不包含字母S的员工。 15.查询员工姓名的第二个字母为M的员工信息。 16.查询所有员工姓名的前三个字符。 17.查询所有员工的姓名,如果包含字母s,则用S替换。 18.查询员工的的姓名和入职日期,并按入职日期从先到后进行排序。 19.显示所有员工的项目、工作、工资,按工作降序排序,若工作相同则按工资升序排序。 20.显示所有员工的姓名、入职的年份和月份,按入职日期所在的月份排序,若月份相同则 按入职的年份排序。 21.查询每个部门中的员工数量、平均工资和平均工作年限。 22.查询各个部门的人数及平均工资。 23.查询各种工作的最低工资,并输出最低工资低于3000的工作名称。 24.查询各个部门中不同工种的最高工资。 25.统计各个工种的员工人数与平均工资。 三、分析与思考

Oracle实验

实验一oracle基本操作 实验目的: 1.熟练掌握SQL*Plus的使用; 2.熟悉oracle网络连接配置; 3.掌握系统与对象权限管理; 4.掌握DBAC创建数据库和表空间的维护; 实验内容: 1.查看并写出和oracle相关的各个服务;查看注册表中oracle产品和服务的注册信息。 OracleDBConsoleorcl OracleJobSchedulerORCL OracleOraDb10g_home1iSQL*Plus OracleOraDb10g_home1TNSListener OracleServiceORCL 2.查看并写出oracle环境变量path的值。 D:\oracle\product\10.2.0\db_1\bin; 3.熟悉oracle目录结构,查看并写出当前机器中orcl数据库的数据文件、重做日志文件和控制文件的存放位置。 D:\oracle\product\10.2.0\oradata\orcl 4.查看并写出启动例程所需要的初始化参数文件initorcl.ora、口令文件PWDORCL.ORA和数据字典定义文件CATALOG.SQL所在的位置。 D:\oracle\product\10.2.0\db_1\database 5.使用sys登录em,查看scott和hr用户是否是锁定状态,如果锁定进行解锁,并修改hr用户的密码为abc。写出操作步骤。 用户名:sys 密码:abc 连接身份:sysdba 1

点击管理,用户,选择scott点击编辑,点击未锁定,点击应用 用户,选择hr点击编辑,点击未锁定,输入口令:abc,确认口令:abc,点击应用 6.使用sys登录SQL*Plus,查看系统中各表空间的状态,使用数据字典DBA_TABLESPACES,写出相关的命令。 Connect sys/abc@orcl as sysdba Select * from dba_tablespace; 7.使用scott登录SQL*Plus,查看该用户下有哪些表,并查看dept表和emp 表结构以及表中数据;使用hr连接SQL*Plus,查看该用户下有哪些表,并查看jobs 表和employees表结构以及表中的数据,写出完成以上操作的各个命令。 Connect scott/tiger@orcl select * from tab; desc emp Select * from dept; Select * from emp; Connect hr/tiger@orcl 8.在SQL*Plus中,将scott用户下的emp表数据转出至e:\oracle\data\emp.txt,写出相应的命令。 9.在SQL*Plus命令提示符下输入select * from table;调用文本编辑器编辑SQL 缓冲区中的内容,将命令改为select * from tab;并执行SQL缓冲区中修改以后的命令。写出完成以上操作的各命令。 Select * from table ; Edit 2

触发器实验报告

. . . . .. . 实验报告 课程名称:数字电子技术基础实验 指导老师: 周箭 成绩:__________________ 实验名称:集成触发器应用 实验类型: 同组学生姓名:__邓江毅_____ 一、实验目的和要求(必填) 二、实验内容和原理(必填) 三、主要仪器设备(必填) 四、操作方法和实验步骤 五、实验数据记录和处理 六、实验结果与分析(必填) 七、讨论、心得 实验内容和原理 1、D →J-K 的转换实验 设计过程:J-K 触发器和D 触发器的次态方程如下: J-K 触发器:n n 1 +n Q Q J =Q K +, D 触发器:Qn+1=D 若将D 触发器转换为J-K 触发器,则有:n n Q Q J =D K +。 实验结果: J K Qn-1 Qn 功能 0 0 0 0 保持 1 1 0 1 0 0 置0 1 0 1 1 0 1 翻转 1 0 1 0 1 置1 1 1 (上:Qn ,下:CP ,J 为高电平时) 2、D 触发器转换为T ’触发器实验 设计过程:D 触发器和T ’触发器的次态方程如下: D 触发器:Q n+1= D , T ’触发器:Q n+1=!Q n 若将D 触发器转换为T ’触发器,则二者的次态方程须相等,因此有:D=!Qn 。 实验截图: 专业:电卓1501 姓名:卢倚平 学号:3150101215 日期:2017.6.01 地点:东三404

实验名称:集成触发器应用实验 姓名: 卢倚平 学号: 2 (上:Qn ,下:!Qn )CP 为1024Hz 的脉冲。 3、J-K →D 的转换实验。 ①设计过程: J-K 触发器:n n 1 +n Q Q J =Q K +, D 触发器:Qn+1=D 若将J-K 触发器转换为D 触发器,则二者的次态方程须相等,因此有:J=D ,K=!D 。 实验截图: (上:Qn ,下:CP ) (上:Qn ,下:D ) 4、J-K →T ′的转换实验。 设计过程: J-K 触发器:n n 1 +n Q Q J =Q K +, T ’触发器:Qn+1=!Qn 若将J-K 触发器转换为T ’触发器,则二者的次态方程须相等,因此有:J=K=1 实验截图:

实验十一Oracle数据库备份与恢复

实验十一Oracle数据库备份与恢复 【实验目的与要求】 1. 常见数据备份与恢复的方法 2.学会Oracle备份方案的制定 【实验内容与步骤】 1. Oracle物理备份与恢复 准备工作: (1)查看数据库是否运行于归档模式下: 请给出查询的结果: (2)关闭数据库,做一个完全的冷备份。 提示: a.使用shutdown命令关闭数据库; b.复制数据文件、日志文件和控制文件到安全地方 (3) 把数据库改为归档模式 设置成自动归档 SQL> alter system set log_archive_start = true scope=spfile;

注意:本实验中的很多命令路径参数需根据自己的实现环境做出修改!! 实验11-1 数据库系统数据文件和回退段遭破坏的情况下的恢复。此时数据库的状态是关闭的。 (1)先启动数据库,创建新用户scott,并用scott用户建立test表,并插入两条数据。创建表空间的四个步骤: /*分为四步 */ /*第1步:创建临时表空间 */ create temporary tablespace user_temp tempfile 'D:\ user_temp.dbf' size 50m autoextend on next 50m maxsize 20480m extent management local; /*第2步:创建数据表空间 */ create tablespace user_data logging datafile 'D:\ user_data.dbf' size 50m autoextend on next 50m maxsize 20480m extent management local; /*第3步:创建用户并指定表空间 */ create user scott identified by tiger default tablespace user_data temporary tablespace user_temp; /*第4步:给用户授予权限 */ grant connect,resource,dba to scott; SQL> create table test (id int,name varchar2(10)); 表已创建。 SQL> insert into test values(1001,’zhangfei’); 已创建 1 行。 SQL> insert into test values(1002,’guanyu’); 已创建 1 行。 SQL> commit; 提交完成。 (2)模拟数据库遭意外被迫关闭,并且系统数据文件丢失。 SQL> shutdown abort

实验五 存储过程和触发器的定义和使用3

实验五存储过程和触发器的定义和使用 一、实验目的 1、掌握局部变量、全局变量、流程控制语句的使用方法 2、了解存储过程的类型和作用,并掌握使用对象资源管理器和Transact-SQL语句创建 存储过程的方法及使用方法。 3、理解触发器的特点和作用,并掌握使用Transact-SQL语言创建触发器的方法 二、实验内容 1.在学生成绩库中中有如下各表: 学生表(Student) 学号姓名性别出生日期专业所在系联系电话020101杨颖01980-7-20计算机应用计算机88297147 020102方露露01981-1-15信息管理计算机88297147 020103俞奇军11980-2-20信息管理计算机88297151 020104胡国强11980-11-7信息管理计算机88297151 020105薛冰11980-7-29水利工程水利系88297152 020201秦盈飞01981-3-10电子商务经济系88297161 020202董含静01980-9-25电子商务经济系88297062 020203陈伟11980-8-7电子商务经济系88297171 020204陈新江11980-7-20房建水利系88297171 create database学生成绩数据库 create table Student ( 学号Char(6)not null, 姓名Char(8)not null, 性别Bit not null, 出生日期smalldatetime, 专业Char(10), 所在系Char(10), 联系电话Char(11)null ) 课程表(Course) 课程号课程名教师开课学期学时学分 101计算机原理陈红2453 102计算方法王颐3453 103操作系统徐格2604 104数据库原理及应用应对刚3755 105网络基础吴江江4453 106高等数学孙中文1906 107英语陈刚1906 108VB程序设计赵红韦3705

oracle实验--存储过程

实验八存储过程的使用 一、实验目的 1、熟练掌握存储过程的定义及使用 二、实验要求 1、实验前做好上机实验的准备,针对实验内容,认真复习与本次实验有关的知识,完成 实验内容的预习准备工作; 2、能认真独立完成实验内容; 3、实验后做好实验总结,根据实验情况完成实验报告。 三、实验内容 创建图书管理库的图书、读者和借阅三个基本表的表结构: 图书表: BOOK ( BOOK_ID NUMBER(10), SORT V ARCHAR2(10), BOOK_NAME V ARCHAR2(50), WRITER V ARCHAR2(10), OUTPUT V ARCHAR2(50), PRICE NUMBER(3)); 读者表 READER ( READER_ID NUMBER(3), COMPANY V ARCHAR2(10), NAME V ARCHAR2(10), SEX V ARCHAR2(2), GRADE V ARCHAR2(10), ADDR V ARCHAR2(50)); 借阅表 BORROW ( READER_ID NUMBER(3),

BOOK_ID NUMBER(10), BORROW_DA TE DA TE); 插入数据: BOOK表: insert into book values(445501,'TP3/12','数据库导论','王强','科学出版社',17.90); insert into book values(445502,'TP3/12','数据库导论','王强','科学出版社',17.90); insert into book values(445503,'TP3/12','数据库导论','王强','科学出版社',17.90); insert into book values(332211,'TP5/10','计算机基础','李伟','高等教育出版社',18.00); insert into book values(112266,'TP3/12','FoxBASE','张三','电子工业出版社',23.60); insert into book values(665544,'TS7/21','高等数学','刘明','高等教育出版社',20.00); insert into book values(114455,'TR9/12','线性代数','孙业','北京大学出版社',20.80); insert into book values(113388,'TR7/90','大学英语','胡玲','清华大学出版社',12.50); insert into book values(446601,'TP4/13','数据库基础','马凌云','人民邮电出版社',22.50); insert into book values(446602,'TP4/13','数据库基础','马凌云','人民邮电出版社',22.50); insert into book values(446603,'TP4/13','数据库基础','马凌云','人民邮电出版社',22.50); insert into book values(449901,'TP4/14','FoxPro大全','周虹','科学出版社',32.70); insert into book values(449902,'TP4/14','FoxPro大全','周虹','科学出版社',32.70); insert into book values(118801,'TP4/15','计算机网络','黄力钧','高等教育出版社',21.80); insert into book values(118802,'TP4/15','计算机网络','黄力钧','高等教育出版社',21.80); READER表: insert into reader values(111,'信息系','王维利','女','教授','1号楼424'); insert into reader values(112,'财会系','李立','男','副教授','2号楼316'); insert into reader values(113,'经济系','张三','男','讲师','3号楼105'); insert into reader values(114,'信息系','周华发','男','讲师','1号楼316'); insert into reader values(115,'信息系','赵正义','男','工程师','1号楼224'); insert into reader values(116,'信息系','李明','男','副教授','1号楼318'); insert into reader values(117,'计算机系','李小峰','男','助教','1号楼214'); insert into reader values(118,'计算机系','许鹏飞','男','助工','1号楼216'); insert into reader values(119,'计算机系','刘大龙','男','教授','1号楼318'); insert into reader values(120,'国际贸易','李雪','男','副教授','4号楼506'); insert into reader values(121,'国际贸易','李爽','女','讲师','4号楼510'); insert into reader values(122,'国际贸易','王纯','女','讲师','4号楼512'); insert into reader values(123,'财会系','沈小霞','女','助教','2号楼202'); insert into reader values(124,'财会系','朱海','男','讲师','2号楼210'); insert into reader values(125,'财会系','马英明','男','副教授','2号楼212'); BORROW表:

实验五-触发器和存储过程

实验五:触发器和存储过程 一.实验目的:理解触发器和存储过程的含义,掌握用SQL语句实现触发器和存储过程的编写,并初步掌握什么情况下使用事务。 二.实验内容: 有一个小型的图书管理数据库,包含的表为: bookstore(bookid,bookname,bookauthor,purchasedate,state);--图书库存表 borrowcard(cardid,ownername);--借书证表 borrowlog(cardid,bookid,borrowdate,returndate);--借书记录表 写一个存储过程,实现借书操作,要求有事务处理。(1)读者借书,要先设置书籍不在库标志state(借出),然后增加借书记录,在同一事务中完成。(2)要求在事务执行过程中引入错误触发事件,以此体会事务的错误保护机制和事务编程的作用。(3)要求用触发器实现表的完整性控制。 三、操作与运行 1.创建图书数据库: create table bookstore (bookid int not null primary key, bookname char(20),

bookauthor char(20), purchasedate datetime, state char(4) ) create table borrowcard (cardid int not null primary key, ownername char(20) ) create table borrowlog (cardid int not null, bookid int not null, borrowdate datetime, returndate datetime, primary key(cardid,bookid), ---foreign key(cardid)references borrowcard(cardid), ---foreign key(bookid)references bookstore(bookid) ) 通过以上语句,可以看到数据库中的表建立成功。 2.创建存储过程: create proc book_borrow @mycardid_in int, @mybookid_in int,

《Oracle数据库》实验报告

实验二Oracle数据库开发环境下PL/SQL编程(2学时) 【实验目的】 (1)掌握PL/SQL 的基本使用方法。 (2)在SQL*PLUS环境下运行PL/SQL的简单程序。 (3)应用PL/SQL 解决实际问题 【实验内容与步骤】 一、实验内容: 1、用PL/SQL实现:输入eno的值,显示emp表中对应记录的内容。 2、用PL/SQL完成:读入三个数,计算并输出它们的平均值及三个数的乘积。

3、对职工表emp中的雇员SCOTT提高奖金,若工种为MANAGER,则奖金提高其原来的20%;若工种为SALESMAN,则奖金提高其原来的15%;若工种为ANALYST,则奖金提高其原来的10%, 其它都按原来的7%提高。

4、用PL/SQL块实现下列操作 公司为每个职工增加奖金:若职工属于30号部门,则增加$150;若职工属于20号部门, 则增加$250;若职工属于10号部门,则增加$350。(提示:游标请自行阅读相关内容) DECLARE addcomm https://www.360docs.net/doc/7b1311314.html,m%type; CURSOR emp_cursor IS select deptno from emp; BEGIN

FOR emprec IN emp_cursor LOOP IF emprec.deptno=30 THEN addcomm:=150; ELSIF emprec.deptno=20 THEN addcomm:=250; ELSIF emprec.deptno=10 THEN addcomm:=350; END IF; Update emp set comm=comm+ addcomm where deptno= emprec.deptno; END LOOP; COMMIT WORK; END; 实验三PL/SQL触发器和存储过程(2学时) 【实验目的】 (1)了解触发器的类型。 (2)掌握PL/SQL触发器的使用方法。 (3)了解存储过程的使用方法。 (4)掌握存储过程的使用方法。 【实验内容】 实验内容: 1、编写一个数据库触发器,当任何时候某个部门从dept表中删除时,该触发器将从emp 表中删除该部门的所有雇员。(要求:emp表、dept表均为复制后的表) CREATE OR REPLACE TRIGGER del_emp_deptno BEFORE DELETE ON dept FOR EACH ROW BEGIN DELETE FROM emp WHERE deptno=:OLD.deptno; END;

数据库oracle实验3

实验三数据更新与视图 一、实验目的 1、掌握数据更新语句的使用; 2、掌握视图操作的基本方法和应用,理解基于视图的查询和数据更新操作的过程。 二、实验内容 1.在实验一创建的表中使用SQL语句完成以下操作: (1)学生“宾兆琦”要退学,请删除该学生的所有记录。 (2)将姓名为“朱安琪”同学的专业改为“软件工程”。同时创建转专业记录表change_major,表中包括编号属性列(ID),学号属性列(sno),姓名属性列(sname),转出专业属性列(cbefor),转入专业属性列(cafter)和转专业时间属性列(ctime),在change_major表中插入“朱安琪”同学的转专业信息。 (3)删除选修了“计算机网络”但没有及格的选课记录。

(4)将(106559,路前元,男,汉族,共青团员,1995/11/8,null,null)插入学生关系。 (5)在C表中插入以下元组: “382,数据库原理与应用,3.5,选修,4”, “383,JAVA语言程序设计,4.5,选修,6” (6)创建视图JSJ_VIEW,包括计算机科学与技术专业学生的学号,姓名,其选修的课程名及成绩属性列。

(7)创建查询每个学生的修课学分的视图XF_VIEW,要求列出学生学号及总学 分。 (8)在创建的视图中查询李洋洋和李向冲所修的学分数。 2.在实验二创建的表中使用SQL语句完成以下操作: (1)现有一供应商,代码为S9、姓名为英特尔、所在城市西安,供应情况如下:供应零件P5给工程J7数量为600,供应零件P4给工程J4数量为500,请将此供应商的信息和供应信息插入数据库。

存储过程和触发器(数据库实验5)

数据库基础与实践实验报告实验五存储过程和触发器 班级:惠普测试142 学号:1408090213 姓名:闫伟明 日期:2016-11-14

1 实验目的: 1)掌握SQL进行存储过程创建和调用的方法; 2)掌握SQL进行触发器定义的方法,理解触发器的工作原理; 3)掌握触发器禁用和重新启用的方法。 2 实验平台: 操作系统:Windows xp。 实验环境:SQL Server 2000以上版本。 3 实验内容与步骤 利用实验一创建的sch_id数据库完成下列实验内容。 1.创建存储过程JSXX_PROC,调用该存储过程时可显示各任课教师姓名及其所教课程名称。 存储过程定义代码: CREATE PROCEDURE JSXX_PROC AS SELECT tn 教师姓名,cn 所教课程FROM T,TC,C WHERE T.tno=TC.tno AND https://www.360docs.net/doc/7b1311314.html,o=https://www.360docs.net/doc/7b1311314.html,o 存储过程执行语句与执行结果截图: EXECUTE JSXX_PROC 2.创建存储过程XM_PROC,该存储过程可根据输入参数(学生姓名)查询并显示该学生的学号、 所学课程名称和成绩;如果没有该姓名学生,则提示“无该姓名的同学”。 存储过程定义代码:

CREATE PROCEDURE XM_PROC @sname VARCHAR(100) AS BEGIN IF EXISTS(SELECT NULL FROM S WHERE sn=@sname) SELECT S.sno 学号,cn 课程,score 成绩FROM S,SC,C WHERE https://www.360docs.net/doc/7b1311314.html,o=https://www.360docs.net/doc/7b1311314.html,o AND SC.sno=S.sno AND S.sn=@sname ELSE PRINT'无该姓名的同学。' END 运行截图: 3.创建存储过程XBNL_PROC,该存储过程可根据输入参数(专业名词,默认值为计算机专业), 统计并显示该专业各年龄段男、女生人数。如果没有该专业,则显示“无此专业”。 存储过程定义代码: CREATE PROCEDURE XBNL_PROC @departName VARCHAR(30)='计算机', @begin INT, @end INT AS

Oracle数据库实验三

作业三表 一、实验目的 掌握表的操作和管理。 二、实验内容 1、创建基本表 2、利用子查询创建表 3、完整性约束设置 4、表数据的插入和修改、删除 三、实验步骤 前提:以system登录,编写下述题目的sql脚本。 1、创建表t1 字段如下: empno number(4) not null primary key, ename varchar2(20) not null, sex varchar2(1) not null, birthday date, salary number(7,2) default(0) 2 3、利用子查询创建表t2

子查询的条件是:性别为男 4、利用子查询创建表t3 要求是:只获取t1的表结构 (此方法为错误方法!!!!) 查看表t2的约束,请解释与t1相比,缺少了什么?为什么? select table_name, constraint_type, constraint_name, search_condition from user_constraints where table_name=’T2’ order by table_name, constraint_type;

为表t2增加缺少的约束 创建表author,其字段如下: id number(3), name varchar2(20), sal number(6,2) 为该表增加字段address,类型为varchar2(100)修改该表的sal字段名为salary

为字段salary增加值在0到10000内的约束删除字段address 删除该表

oracle实验以及答案

实验1SQL*Plus的使用和基本SELECT语句 实验目的 通过该实验使学员掌握简单查询语句的基本使用方法以及别名的指定方法,能够创建和执行SQL脚本。 实验要求 (1)掌握SQL*Plus的基本使用 (2)掌握SELECT语句的简单用法。 实验步骤 (1)登录到SQL*Plus,初始用户名为:SCOTT,口令为TIGER。 答:打开sql plus,输入用户名和密码登陆;也可以从dos窗口输入命令sqlplus Scott/tiger 连接数据库 (2)分别显示EMP、DETP、SALGRADE表结构,并察看表中的数据。 答:DESC emp; DESC dept; DESC salgrade; (3)创建一个查询显示每个雇员的姓名、工作、受雇日期及雇员编号,并且要将雇员编号作为第一列显示。最后将该SQL语句保存成文件p1q1.sql,并执行该脚本文件。 答:SELECT empno,ename,job,hiredate FROM emp; (4)将脚本文件p1q1.sql调取到SQL缓冲区,并将列标题设置为Emp #,Employee,Job及Hire Date,将该SQL语句保存成文件p1q2.sql,最后返回查询结果。 答:SELECT empno "Emp #",ename "Employee",job "Job",hiredate "Hire Date" FROM emp; 思考练习题 1.SQL*Plus命令是用于访问数据库的吗? 答:可以访问数据库。

2.下面的SELECT语句能成功执行吗? SQL>SELECT ename,job,sal Salary 2FROM emp; 答:可以成功执行。 3.下面的语句有3处错误,请纠正它们。 SQL>SELECT empno,ename 2Salary x 12 ANNUAL SALARY 3FROM emp; 答:A.表中没有Salary项,改为sal; B.ename后缺少逗号。 C.别名中含有大写字母和空格,需加双引号,改为“ANNUAL SALARY” 4.创建一个查询从EMP表中检索出不重复的工作名称。 答:SELECT DISTINCT job FROM emp; 5.用一个逗号和一个空格将姓名和工作连接后作为一个整体输出,显示的列标题为Employee and Title。 答:SELECT ename||', '||job "Employee and Title" From emp; 6.创建一个查询,用逗号将表中所有字段的信息连接作为一个整体输出,输出的列标题为THE_OUTPUT。 答:SELECT empno||ename||job||mgr||hiredate||sal||comm||deptno "THE_OUTPUT" FROM emp; 实验2使用WHERE和ORDER BY子句 实验要求 (1)掌握WHERE子句的用法。 (2)掌握ORDER BY子句的用法。

oracle实验报告

四川师范大学计算机学院oracle实验报告册 院系名称:计算机科学学院 课程名称:oracle数据库运用与开发 实验学期2012 年至2013 年第 1 学期 专业班级:电子商务2010级5班 姓名:苏瑶学号:2010110338 指导教师:俞晓老师 实验最终成绩:

实验一了解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数据库

--创建用户 create user user1 identified by user1; --赋给用户建表、连接等权限 grant connect to user1; grant create any table to user1; grant resource ,dba to u1; --连接用户 Conn user1/user1; --收回权限(dba ) revoke dba from u1;

------------------------------------------------------------------------- 实验二熟悉SQL语言 (验证性实验 4学时) 1.目的要求 在SQL*PLUS或PL/SQL Developer工具中编写SQL语句 2.实验内容 在ORACLE 数据库中定义用户,给用户赋权限,创建,修改和删除表格,视图等数据库对象,并向表格中插入,修改和删除数据。体会SQL语言中ORACLE的“方言”。 对自己建立的表做查询:包括单表查询,多表查询,嵌套查询,分组查询,相关查询 3.主要仪器设备及软件 1)PC 2)ORACLE数据库 --修改数据: update student set sAge=19where sage=18; --删除数据: delete from student where sname='吴芳'; --输出成绩大于60小于80的学生的名字 select sname from student,sc where grade >60and grade <80and student.sno=sc.sno; --输出学生表中的总人数 select count(*)from student;

相关文档
最新文档