




已阅读5页,还剩21页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
数据库系统实验指导书东北林业大学信息与计算机工程学院目 录第一部分 实验环境1.1 实验环境简介 11.2 实验中常用的基本的SQL语句 4第二部分Oracle10g数据库简介2.1 oracle 10g的新特点 42.2 Oracle 10g的优越性 6 23服务器和客户机的网络环境 72.3.1服务器连接客户机 82.3.2客户机连接服务器 82.4 数据库服务器的体系结构 82.4.1进程结构 82.4.2内存结构 92.4.3数据库的逻辑结构 92.4.4数据库的存储结构 112.4.5数据库服务器的总体结构 112.5 ORACLE的数据类型 12第三部分 实验内容实验一数据定义和数据更新 16实验二 数据查询和视图操作16实验三 PL/SQL 块程序设计 16实验四 PL/SQL游标程序设计 19实验五 PL/SQL 存储过程设计 21实验六 PL/SQL触发器设计 23实验七 数据库安全性方案设计 24实验八 数据库备份恢复方案设计 25实验九 数据库设计工具软件应用 25 第一部分 实验环境1.1 实验环境简介1、服务器环境 操作系统:windows 2000 advanced server数据库管理系统:Oracle 10g for NT数据库实例名:test服务器ip:182、客户端环境操作系统:windows 2000Internet Explorer 5.0以上3 、连接数据库服务器在IE地址栏内输入网址:18:5560/isqlplus/就可以运行Oracle iSQL*Plus 程序访问数据库服务器。程序界面如图1-1所示。图1-1 iSQL*Plus运行窗口这时我们需要输入用户名和口令。 我们上机实验的用户名为jsj101-jsj335,xg101-xg335,aq101-aq335,即每位同学专业加上在班级名单上的序号,就是每个同学的用户名。例如某位同学是计算机专业1班的15号,这位同学的用户名就是jsj115,口令与用户名相同。输入用户名和口令后单击“登录”按钮,成功连接数据库如图1-2所示,用户名或者密码错误如图1-3所示。图1-2 登陆成功图1-3 登陆失败4、 成功登录后就可以在文本框区域输入命令,单击“执行”按钮,执行结果显示在下方如图1-4所示。图1-4 SQL命令执行示例5、 测试本计算机是否与服务器处于连通的状态 (1) 在“开始”菜单中选择“运行”命令:输入PING 18按“确定”按钮。如图1-5所示图1-5 测试服务器连接(2)出现如图1-6所示界面。则表明网络已经连通。注意:实际运行时图中的ip地址应为 18图1-6 网络已经连通 1.2 实验中常用的基本的SQL语句1、查询表结构SQL desc 表名 2、显示当前连接用户SQL show user3、查看系统拥有哪些用户SQL select * from all_users;、查询当前用户下所有对象SQL select * from tab;5、回滚事务SQL roll;SQL rollback;6、提交事务SQL commit; 7、修改密码 sql alter user 用户名 identified by 密码 ; (注意:密码一定以字母开头。)第二部分Oracle10g数据库简介Oracle 数据库 10g 是第一个专门设计用于网格计算的数据库,在管理企业信息方面最灵活和最经济高效。它削减了管理成本,同时提供最高的服务质量。 除极大地提高质量和性能以外,Oracle 数据库 10g 还通过简化的安装、大幅减少的配置和管理需求以及自动性能诊断和 SQL 调整,显著地降低了管理 IT 环境的成本。 这些及其他自动管理功能提高了 DBA 和开发人员的生产效率。2.1 oracle 10g的新特点一、性能与扩展能力 1.对新的架构支持 对 Intel 64 位平台的支持。支持 infiniband 。极大地改进了多层开发架构下的性能和可扩展能力。新的版本也借用了 Windows 操作系统对 Fiber 支持的优势。 2.高速数据处理能力 在这个版本中,一个类型的表对象被引入。该表结构对大量插入和解析数据很有益处。这个表结构对 FIFO 的数据处理应用有着很好的支持。这样的应用在电信、生产应用中常常能够用到。通过使用这种优化的表结构能够对电信级的应用起到巨大的性能改进作用。 3.RAC workload 管理 一个新的服务框架。使得管理员作为服务来设置、管理监视应用负载。 4.针对 OLAP 的分区 通过对哈希分区的全局索引的支持可以提供大量的并发插入的能力 5.新的改进的调度器( Scheduler ) 引入了一个新的数据库调度器,提供企业级调度功能。这个调度器可以使得管理员有能力在特定日期、特定时间调度 Job 。还有能力创建调度对象的库能够和既有的对象被其他的用户共享。二、可管理性这个版本的 Oracle 的一个引人注目之处就是管理上的极大简化。大量复杂的配置和部署设置被取消或者简化。常见的操作过程被自动化。对不同区域的大多数调整和管理操作的到简化。 1.简化的数据库配置与升级提供了预升级检查能力,有效地减少升级错误。 去除了了很多和数据库配置有关的任务或者对其加以自动化。在初始安装的时侯,所有数据库都被预配置包括在 OEM 环境中而无需建立一个管理资料库。补丁程序可以自动标记并自动从 Oracle Metalink 下载。 2.自动存储管理 新版本的数据库能够配置成使用 Oracle 提供的存储虚拟层( Storage Virtualization Layer) 。自动并简化数据库的存储。管理员现在可以管理少数的磁盘组而无需管理数千个文件-自动存储管理功能可以自动 配置磁盘组,提供数据冗余和数据的优化分配。 3.自动的基于磁盘备份与恢复10G也极大的简化了备份与恢复操作。这个改进被称作Disk based Recovery Area ,可以被一个联机Disk Cache 用来进行备份与恢复操作。备份可以调度成自动化操作,自动化优化调整。备份失败的时侯,可以自动重启,以确保 Oracle 能够有一个一致的环境使用。 4.应用优化 以前的版本中, DBA 更多时候要手工对 SQL 语句进行优化调整。这里引入了一些新的工具,从此 DBA 无需手工做这些累人的事情。(这样的说法似乎有些太绝对) 5.自动化统计收集 为对象自动化收集优化统计。 6.自动化实例调整 DBA需要干预的越来越少么? 好消息还是坏消息?7.自动化内存调整 上一个版本对 UGA 能够进行自动化 Tuning ,这版本能够对 SGA 相关的参数进行调整。这意味着 DBA 只需要对2 个内存参数进行配置:用户可用的总的内存数量和共享区的大小。 三、高可用性的加强1.缩短应用和数据库升级的宕机时间 通过使用 standby 数据库。允许在不同版本的 standby 和产品数据库间切换。现有的联机重定义功能能够支持一步克隆所有相关的数据库对象。 2.回闪 (Flashback) 任何错误 该版本的 Oracle 也扩展了 Flashback 的能力。加了一个新类型的 Log 文件,该文件记录了数据库块的变化。这个新的 Log 文件也被自动磁盘备份和恢复功能所管理。如果有错误发生,例如针对不成功的批处理操作,DBA 可以运行 FlashBack。用这些 before Images 快速恢复整个数据库到先前的时间点-无须进行恢复操作,这个新功能也可以用到 Standby 数据库中。 Flashback 是数据库级别的操作,也能回闪整个表。既有的 FlashBack 查询的能力也已经加强。在这个版本中,管理员能够快速查看特定事务导致的变化。 3.Enhanced Data Guard Infrastructure 4.安全的加强 VPD 得到了改进 ( 希望这次名字不会换成别的 ),支持更多的安全协议。四、DATA INTEGRATION 1.Oracle streams 这个版本也包括Oracle streams功能、性能以及管理上的改进。新功能包括对产品数据库downstream capture/ offloading the capture 和挖掘操作等。对 LONG、LONG RAW、NCLOB 等数据类型支持加强。对 IOT/级联删除得到加强,性能也得到提升。 2.Data Pump Oracle Data Pump-高速、并行的技术架构,能够快速的在数据库间移动数据与元数据。最初的 Export/Import 被 Data Pump Export/Data Pump Import所取代,并提供了完美粒度的对象选择性。Data Pump 操作具有可恢复性。相比 Exp/Imp,有了很大的改进。归档数据、逻辑备份的数据和可传输的表空间都可以用 Data Pump 来操作。 这个特性和NCR的产品工具有很大的相似性(连名字都很相似),究竟功能性能会怎样,还是让我们拭目以待。 五、商务智能/数据仓库和生物信息学(BIOINFORMATICS) 1.超大数据库的支持 可支持到 8E 的数据量。改进的存储、备份、恢复管理也对超大数据库有着很好的支持。分区可以支持索引组织表。 2.缩短信息周转时间 新版本的 Oracle 提供了加强的 ETL 功能。可以方便的构建大型数据仓库和多个数据集市。一个新的变化数据捕捉的框架允许管理员能够轻易的捕捉并发布数据的变化。新的 CDC 功能利用的是 Oracle 的 Stream 技术架构。 对于大数据量的转移,新版本提供了对可传输表的跨平台的支持,允许大批量数据快速从数据库上的脱离并附接到第二个数据库上。 3.增强的外部表功能4.SQL Loader 的功能加强5.增强的 SQL 分析能力SQL 语句的功能针对 BI 得到了极大地增强。 6.增强的 OLAP 分析功能Oracle 内建的分析功能得到增强。提供了新的基于 PL/SQL 和 XML 的接口。 提供了新的并行能力,以便于进行聚合和 SQL IMPERT 操作。一些算法得到改进。同时 OEM 能够用来监视并管理数据挖掘环境。 7.BIOINFORMATICS 的支持这个版本包含对 BIOINFORMATICS 技术的特定支持。包括对 Double 和 Float 数据类型的 Native 支持。内建的统计函数支持常见的 ANOVA 分析等。 8.改进的数据挖掘的能力 六、扩展数据管理能力1.XML 方面的增强 2.多媒体 在前面的版本中,存在着媒体文件4G的限制。现在媒体文件的 4G 大小限制去掉了(现在限制是:8-128T)。通过 SQL 多媒体标准能够访问多媒体数据。对更多的新的多媒体格式提供支持。 3.文档和文本管理 提供了自动发现未知文档的语言和字符集的功能。支持新的 German 拼写规则 Japanese adverb 等等。 本地分区的文本索引可以联机创建。文档可以在索引创建和重建的时候插入。文档服务,如高亮功能无须重建索引。检索文档的能力也得到提高。 七、应用开发方面的加强 1.SQL 语言的加强 SQL 和 PL/SQL 对正则表达式支持。激动人心的一个特性,这个特性怕是要改写很多人编程的习惯了。或许能见到一条 SQL 语句完成更为复杂的功能。这个版本还支持表达式过滤的功能。 2.PL/SQL 的增强 最重要的当数新的 PL/SQL 优化编译器,提供了一个框架有效地优化编译 PL/SQL 程序。 这个版本还引入了两个新的数据库包:UTL_COMPRESS、UTL_MAIL。 3.全球化和 Unicode 的增强提供了Globalization Development Kit (GDK)。Oracle NLS 定义文件开始具有平台无关性. 4.Java Improvements 对 JDBC 更好的支持。八、其他的还包括OCCI 和 Pre Compilers 的改进; 数据库 Web 服务的改进; 基于 Web 的开发环境的加强等。2.2 Oracle 10g优越性当今希望取得良好效益的企业不仅需要可靠、高性能的应用为客户服务,而且必须降低运营成本,最大限度地扩大赢利空间。这种情况加之这方面技术能力的短缺使得管理成本迅速攀升,甚至对企业的竞争能力构成潜在威胁。针对上述情况,Oracle推出了全新一代数据库系统:Oracle 10g. Oracle Database10g是第一个为企业级网格计算而设计的数据库,允许IT快速响应业务需求,在降低成本的同时,提供最高质量的服务。最重要的是,它易于部署和管理。一、高效的存储技术对数据库而言,存储器是主要的资源之一。Oracle Database 10g中新的自动存储管理(ASM)功能解决了这些挑战。ASM使得Oracle Database 10g下的存储快速、廉价、且易于管理。二、高品质的服务Oracle 10g解决了由计算机或数据故障引起的意外停机时间问题。真正应用集群利用自动节点故障切换和负载的重新分配来防止网格中的节点故障。利用Oracle 10g廉价磁盘的有效利用提供了任何类型数据故障的快速恢复。人为错误一般被认为是停机时间的最大原因,Oracle 10g利用其大大增强的闪回功能,在人为错误修正上取得了突破。三、易于管理Oracle 10g的主要价值之一是使部署和维护基于Oracle产品的解决方案的管理成本显著降低。Oracle企业管理器网格控制管理网格范围的操作,包括整个软件系列的管理、供应用户、克隆数据库和补丁程序管理。从最终用户的角度看,Oracle企业管理器甚至能够监控所有应用程序的性能。 四、自动性能诊断为了使持续的管理变得更加容易,Oracle 10g执行自动性能诊断并提出调整建议。Oracle 10g引进了自动负载存储(AWR),它周期性地收集和存储系统活动和工作负载数据。新的、称为自动数据库诊断监视器(ADDM)的专家诊断引擎分析这些数据。在应用程序开发方面,Oracle 10g能够作为Web Service提供者和用户。此外,Oracle 10g包含带有HTML DB的强大的本地开发工具。该工具是为非编程人员提供的一个托管开发环境,允许创建以数据库为中心的web应用程序。五、数据仓库Oracle 10g增强了它的数据仓库和商务智能能力,并支持实时的数据传送。由于能够利用增强的OLAP分析(数据挖掘GUI和新的SQL模型特性)对核心数据执行更加多样的分析操作,提高了数据的价值。这个SQL模型允许将查询结果作为多维数组集合进行处理,在数组上构建复杂的互相依赖的公式。这些公式能用于复杂的数字运算应用程序(如预算和预报),且无需将数据提取到一个电子数据表中,或者执行复杂的连接与合并。 Oracle 10g作为网络数据库,常见的有两种工作模式。23服务器和客户机的网络环境Oracle10g的网络环境如图2-1所示。Oracle10g个g DBMSOracle数据库文件客户端SQLSQL客户端SQL网络SQL结果计算机图2-1 Oracle10g网络环境2.3.1服务器连接客户机 在每个Oracle 10g数据库服务器上都会运行一个特殊的程序,称为监听程序。 网络上有很多各种用途的数据包在流动,监听程序好比是Oracle10g数据库服务器的耳朵,它要分辨出哪些数据包是Oracle10g的管理客户机发出来的。在正常安装的Oracle10g数据库服务器上,已经自动配置了监听程序。2.3.2客户机连接服务器 管理客户机上有专门的连接工具连接通信网络,向Oracle10g数据库服务器发送管理请求。 在安装Oracle10g管理客户机时,将进行网络服务名的配置。网络服务名实际上就是一个远程数据库的别名,这个别名是任意的。 在管理客户机上有一个程序,叫做命名方法解析程序。这个命名方法解析程序里配置了各种命名方法。这些命名方法)告诉客户机应该如何将网络服务名指向具体的数据库服务器。 命名方法解析程序将网络服务名翻译为数据库服务器上的监听程序能够监听的名称后,通过网络进行传送。 数据库服务器上的监听程序监听管理请求后,发送给数据库DBMS系统进行处理。管理客户机的工作原理如图2-2所示。图2-2 管理客户机的工作原理举个例子来加深读者的理解。 甲、乙两地之间通过飞机、铁路、公路都可以到达 (各种命名方法),正常情况下,我们就告诉乘客,3种方法都可以,你可以优先选择飞机,然后是铁路和公路。而因为大雾的原因,航班不能正常起降(某种命名方法关闭或尚未启用),就需要告诉乘客只能选择铁路或者公路。 命名方法的配置就是告诉管理客户机通过什么方法去查找网络服务名)对应的数据库服务器,然后才能向明确的数据库服务器发送连接请求。 本地网络服务名是最常用的一种命名方法。2.4 数据库服务器的体系结构 以上介绍了客户机和服务器的连接。下面介绍数据库服务器的体系结构,在介绍完服务器的体系结构后, 就能够理解数据库服务器是如何工作的。 下面首先介绍进程结构。2.4.1进程结构Oracle 10g网络环境里共有两大类进程。(1)用户进程 用户进程是在客户机内存上运行的程序,如客户机上运行的sQLplus、企业管理器等。用户进程向服务器进程提出操作请求。(2)服务器进程 服务器进程是在服务器上运行的程序,接受用户进程发出的请求,根据请求与数据库通信,完成与数据库的连接操作和I/O访问。有一些特别重要的服务器进程负责完成数据库的后台管理工作,称为数据库后台支持进程。主要的服务器进程如表2-1所示。表2-1 oracle 10g 的主要后台支持进程名称主要作用系统监控进程(SMON)数据库系统启动时执行恢复性工作,对有故障数据库进行恢复进程监控进程(PMON)用于恢复失败的用户进程数据库写入进程(DBWR)将修改后的数据块内容写回数据库日志写入进程(LGWR)将内存中的日志内容写入日志文件归档进程(ARCH)当数据库服务器以归档方式运行时调用该进程完成日志归档检查点进程(CPKT)标识检查点,用于减少数据库恢复所需要的时间恢复进程(RECO)用于分布式数据库中的失败处理锁进程(LCKn)在并行服务器模式下确保数据的一致性快照进程(SNPn)进行快照刷新调度进程(Dnnn)负责把用户进程路由到可用的服务器进程进行处理 2.4.2内存结构 数据库服务器使用计算机的内存来存放常用的信息和所有调度运行的程序。在其他条件相同的情况下,占用的内存越多,Oracle数据库的运行速度就越快,效率就越高。 (1)系统全局区 (SGA) SGA是数据库服务器为用户进程和服务器进程之间进行通信所使用的内存,所有用户进程共享SGA的内容,如图2-3所示。2-3 SGA的作用 (2)程序全局区 (PGA) PGA是数据库服务器内存中为单个用户进程分配的专用的内存区域,是用户进程私有,不能共享。 2.4.3数据库的逻辑结构 Oracle 10g数据库的逻辑结构主要指从数据库使用者的角度来考查的数据库的组成, 如图2-4所示。 自下向上 , 数据库的逻辑结构共有6层。 图2-4 数据库的逻辑结构数据块(DataBlock) (1) 数据块,又叫逻辑块 ,是 Oracle 10g数据库输入/输出的基本单位,常用大小为2KB或4KB,与操作系统有关,在 Windows2O00 Sever里默认为 4KB 。 (2)数据区间(Data Extent) 若干个连续的数据块构成数据区间,是数据库存储空间分配的一个逻辑单位 。 (3)数据段 (DataSegment) 若干个数据区间构成数据段, Oracle 10g中有4种数据段 。 数据段: 存放数据 。 索引段: 存储索引数据 。 回滚段: 存储要撤消的信息 。 临时段: 当 SQL语句需要临时空间时,将建立临时段。一旦执行完毕 ,临时段占用的空间将归还给系统 。 回滚是保持数据一致性的一种策略。当用户对数据库操作已经提交但尚未完成时数据库突然发生中断 (比如突然停电等),要求重新启动后 的数据库能够正确恢复到事务没有提交之前的状态 。 (4) 逻辑对象 (Logic Object) Oracle 10g数据库中提供了丰富的逻辑对象,包括表、视图、索引、触发器、数据库链接等共有 21种 。(5)表空间 (Tablespace)为了提高数据库服务器管理和运行的效率,使用表空间这个虚拟的概念来管理Oracle 10g数据库的默认表空间。(6)数据库 (Database) 一个数据库服务器上可以有多个数据库。 一个数据库可以有多个表空间 。 一个表空间可以有多个表。 一个表可以有多个段。 一个段可以有多个区间 。一个区间可以有多个数据块。表2-2 Oracle 10g数据库的默认表空间2.4.4数据库的存储结构数据库的存储结构指逻辑结构在物理上是如何实现的,共有3层。如图 2-4 所示。图 2-4 数据库的存储结构(1) 物理块 物理块是操作系统分配的基本存储单位,逻辑结构中的数据块由若干个物理块构成。(2 )物理文件每个物理文件由若干个物理块组成,包括数据文件、控制文件和日志文件三类。数据文件:用于存放所有的数据,以DBF为扩展名。日志文件:记录了对数据库的所有操作,以LOG为扩展名。控制文件:记录了数据库所有文件的控制信息,以CTL为扩展名。2.4.5数据库服务器的总体结构Oracle10g数据库服务器的总体结构如图2-5所示。数据库服务器由数据库管理系统和数据库构成。 数据库管理系统由内存结构(SGA和PGA)和进程结构构成。用户进程通过SGA提交请求 服务器进程将这些客户请求转变成对后台数据库的各种操作。 数据库的物理结构由数据文件、日志文件和控制文件构成。 支持数据库运行的服务器后台进程和分配的内存结构统称为例程 (Instance)。可以把例程理解为相对独立的逻辑上的数据库服务器。 图2-5 Oracle10g数据库服务器的总体结构 2.5 ORACLE的数据类型常用的数据库字段类型如下:字段类型中文说明限制条件其它说明CHAR固定长度字符串最大长度2000 bytes VARCHAR2可变长度的字符串最大长度4000 bytes 可做索引的最大长度749NCHAR根据字符集而定的固定长度字符串最大长度2000 bytes NVARCHAR2根据字符集而定的可变长度字符串最大长度4000 bytes DATE日期(日-月-年)DD-MM-YY(HH-MI-SS) LONG超长字符串最大长度2G(231-1)足够存储大部头著作RAW固定长度的二进制数据最大长度2000 bytes 可存放多媒体图象声音等LONG RAW可变长度的二进制数据最大长度2G同上BLOB二进制数据最大长度4GCLOB字符数据最大长度4GNCLOB根据字符集而定的字符数据最大长度4GBFILE存放在数据库外的二进制数据最大长度4GROWID数据表中记录的唯一行号10 bytes 为0或1NROWID二进制数据表中记录的唯一行号最大长度4000 bytesNUMBER(P,S)数字类型P为整数位,S为小数位DECIMAL(P,S)数字类型P为整数位,S为小数位INTEGER整数类型小的整数FLOAT浮点数类型NUMBER(38),双精度REAL实数类型NUMBER(63),精度更高 第三部分 实验内容实验一数据定义和数据更新实验目的:通过本实验能够熟练应用sql语言进行基本表和索引的定义,能够对表的结构进行修改和删除,并通过数据更新命令输入相应的数据实验要求:在进行本实验之前,应熟练课程内容,在上机之前做好实验计划,编写好相应的代码。实验内容: 创建教材的学生课程数据库中的三个表定义表时请注意数据类型问题,Oracle的数据类型请参照本实验讲义要求学号在20000000至99999999之间,年龄29,性别只能是男或女,姓名非空。 修改学生-课程数据库的3个表的定义,分别为每个表建立主码和外码(如果有),并输入数据,验证实体完整性和参照完整性。 建立部门表DEPT,要求部门名称Dname列取值唯一,部门编号Deptno列为主码;建立职工表EMP,要求每个职工的应发工资不得超过3000元。应发工资实际上就是实发工资列Sal与扣除项Deduct之和。 对以上建立的表建立索引 对上述新建立和修改定义的表,每个表输入3条数据,其中1条数据符合完整性约束,2条违反约束条件的,验证和体会Oracle完整性思考题:体会oracle数据库的数据存储方法实验报告要求:写出每道题的命令。在实验完成时,对实验数据的查询结果,截图保存。实验二数据查询和视图操作实验目的:通过本实验能够应用sql语言进行基本表查询,并实现对视图的定义和查询实验要求:在进行本实验之前,应熟练课程内容,在上机之前做好实验计划,编写好相应的代码实验内容 :一、数据查询,对实验一建立的学生-课程数据库中的表进行查询1、查询学生的基本信息;select*froms2、查询“CS”系学生的基本信息; select*fromswheresdept=cs3、查询“CS”系学生年龄不在19到21之间的学生的学号、姓名;selectsno,snamefromswheresdept= CS and(sage21)4、找出最大年龄;selectmax(sage)froms5、找出“CS”系年龄最大的学生,显示其学号、姓名;selectsno,snamefromswheresdept= CS andsage=(selectmax(sage)fromswheresdept= CS )6、找出各系年龄最大的学生的年龄;selectsdept,max(sage)fromsGroupbysdept7、统计“CS”系学生的人数;8、统计各系学生的人数,结果按升序排列;9、按系统计各系学生的平均年龄,结果按降序排列;10、查询每门课程的课程名;11、查询无先修课的课程的课程名和学时数;12、统计无先修课的课程的学时总数;13、统计每位学生选修课程的门数、学分及其平均成绩;统计选修每门课程的学生人数及各门课程的平均成绩;14、找出平均成绩在85分以上的学生,结果按系分组,并按平均成绩的升序排列;15、查询选修了“1”或“2”号课程的学生学号和姓名;16、查询选修了课程名为“数据库系统”且成绩在60分以下的学生的学号、姓名和成绩;17、查询每位学生选修了课程的学生信息(显示:学号,姓名,课程号,课程名,成绩);18、查询没有选修课程的学生的基本信息;19、查询选修课程成绩至少有一门在80分以上的学生学号;20、查询选修了3门以上课程的学生学号;21、查询选修课程成绩均在80分以上的学生学号;二、 视图操作:1、定义“IS”系学生基本情况视图V_IS并查询结果;2、将S,C,SC表中学生的学号,姓名,课程号,课程名,成绩定义为视图V_S_C_G并查询结果;3、将各系学生人数,平均年龄定义为视图V_NUM_AVG并查询结果;4、定义一个反映学生出生年份的视图V_YEAR并查询结果;5、将各位学生选修课程的门数及平均成绩定义为视图V_AVG_S_G并查询结果;6、将各门课程的选修人数及平均成绩定义为视图V_AVG_C_G并查询结果;7、建立视图V_AVG_A查询平均成绩为90分以上的学生学号、姓名和成绩;8、建立视图V_AVG_B查询各课成绩均大于平均成绩的学生学号、姓名、课程和成绩;9、建立视图V_AVG_C按系统计各系平均成绩在80分以上的人数,结果按降序排列;10、通过视图V_IS,分别将学号为“S1”和“S4”的学生姓名更改为“S1_MMM”,”S4_MMM”并查询结果;11、通过视图V_IS,新增加一个学生记录(S12,YANXI,19,IS),并查询结果;12、通过视图V_IS,新增加一个学生记录(S13,YANXI,19,MA),并查询结果;13、通过视图V_IS,删除学号为“S12”和“S3”的学生信息,并查询结果;14、要通过视图V_S_C_G,将学号为“S12”的姓名改为“S12_MMM”,是否可以实现?15、要通过视图V_AVG_S_G,将学号为“S1”的平均成绩改为90分,是否可以实现?思考题:视图的消解过程。实验报告要求:写出每道题的命令。在实验完成时,对你的用户中所有对象截图保存。实验三 PL/SQL 块程序设计实验目的 : (1) 掌握 PL/SQL 块结构、PL/SQL 的基本语法、PL/SQL 的控制结构。 (2) 掌握 PL/SQL 块中使用复合数据类型。 (3) 掌握 PL/SQL 异常处理技术。 实验要求 : (1) 记录执行命令和操作过程中遇到的问题及解决方法,注意从原理上解释原因。 (2) 记录利用iSQL*Plus编写、执行 PL/SQL 程序的命令。 实验内容: 运行1.2.3中的程序,查看运行结果,体会pl/sql语句的语法结构和运行结果。完成4.5.6.及7.8中任选3个中的代码的编写。 1 利用 LOOP 循环方式计算 1+3+5+7+9。代码如下: SET SERVEROUTPUT ON DECLARE i NUMBER; sum1 NUMBER; BEGIN i:=1; sum1:=0; LOOP IF mod(i,2)!=0 THEN sum1:=sum1+i; END IF; i:=i+1; IF(i9) THEN EXIT; END IF; END LOOP; DBMS_OUTPUT.PUT_LINE(sum1); END; 2.利用记录类型将emp表的某条信息显示出来。代码如下: SET SERVEROUTPUT ON DECLARE E_name emp.ename%type; E_no emp.empno%type;E_sal emp.sal%type;E_deptno emp.deptno%type;E_hiredate emp.hiredate%type; BEGIN select empno,ename,hiredate,sal,deptno INTO E_no,E_name,E_hiredate,E_sal , E_deptno FROM emp WHERE empno=7788;DBMS_OUTPUT.PUT_LINE(E_no|姓名是:|E_name |入职日期:|E_hiredate |工资为:|E_sal | E_deptno);end;/ 请利用%rowtype重做本例,注意三者的差别。 3.检索工资大于700的员工工资并输出,同时对可能发生的异常进行处理。declare v_sal emp.sal%type;begin select sal into v_sal from emp where sal=700;exception when no_data_found then dbms_output.put_line(no data!); when too_many_rows then dbms_output.put_line(too many row); when others then null;end;/ 4.编写PL/SQL程序块,完成如下功能:输入一个员工号,修改该员工的工资,如果该员工为10号部门,工资增加100;若为20号部门,工资增加160;若为30号部门,工资增加200;否则增加300。用if 和case 结构实现。5.用3种循环语句来实现将1到50,50个数输入到某个表中。6.系统的自定义异常查询某个部门的平均工资,如果此工资没有在20003000之间,触发自定义异常,请编写PL/SQL来处理此异常。并输出“此部门的平均工资不在2k到3k之间”。 如果你能给此自定义异常分配一个异常号,及异常名(昵称),那自然是极好的。如果不能,也没关系。7.以emp表编写PL/SQL程序块,使程序符合如下要求: (1)用替换变量p_salary提供要查找的工资值。(2)如果与给定工资相符的雇员有多个,捕获该例外并向message表中插入一个值为“more than one employee with a salary of .”的记录。(3)如果没有与给定工资相符的雇员,捕获该例外并向message表中插入一条值为“no employee with a salary of .”的记录。(4)如果恰有一个雇员的工资salary与给定工资相符,将雇员的名字和工资数连接在一起作为一条记录插入message表。(5)对于其他例外情形,向message表中插入一条“some other error occurred”。8. 以dept表编写PL/SQL程序块,使程序符合如下要求:向dept表中插入一条记录,触发自定义异常,如果部门名不是以a开头的,触发异常,显示消息“部门名应以a开头“,向表中插入重复的关键字,触发异常,则显示消息“对不起无法插入:该部门编号已存在”。 实验报告要求:写出每道题的代码。在实验完成时,对程序的运行结果,截图保存。附录:系统非预定义异常declaree_integrity exception;-1定义一个例外类型变量;pragma exception_init(e_integrity,-2291);-2告诉编译器根据oracle的错误代码相对应的意外。beginupdate emp set deptno=&dno where empno=&eno;exceptionwhen e_integrity then -3捕获意外并处理dbms_output.put_line(该部门号不存在);常见问题分析 1测试 PL/SQL 的方法 与其他语言(C/C+等)相比,PL/SQL 的测试有其不同之处,归纳下来有 3 种方法: (1) 使用 DBMS_OUTPUT 包的 PUT_LINE 方法来显示中间变量,以此来观察程序是否存在逻辑错误。 (2) 插入测试表的方法,即创建一个临时的中间表,然后把所有涉及到的中间变量的结果都作为记录插入到中间表中,这样可以通过查询表中的结果来观察程序的执行情况。 (3) 使用异常处理手段,对可疑的程序段使用 BEGIN END,然后可以在 EXCEPTION里进行异常捕获处理。 2如何获取 PL/SQL 的错误消息 Oracle提供了内置函数 SQLCODE 和 SQLERRM 是特别用在 OTHERS处理器中,分别用来返回 Oracle 的错误代码和错误消息。OTHERS 处理器是异常处理块中最后的异常处理器,因为它是用来捕获除了别的异常处理器处理以外的所有的 Oracle 异常,所以在程序的最外层使用一个 OTHERS处理器的话,将可以确保所有的错误都会被检测到。 在一个预定义的异常中,SQLCODE 返回 Oracle 错误的序号,而 SQLERRM 返回的是相应的错误消息,错误消息首先显示的是错误代码。SQLCODE 返回的是负数,除非 Oracle的错误为“ORA-01403: NO DATA FOUND (即未找到数据)”,当Oracle的错误为“ORA-01403:NO DATA FOUND”时,其对应的 SQLCODE 为+100。对于用户自定义的异常,SQLCODE返回的是+1,而 SQLERRM 返回的是“User-Defined Exception”。一个 Oracle 的错误消息最多只能包含 512 个字节的错误代码。如果没有异常被触发,则 SQLCODE 返回 0, SQLERRM返回“ORA-0000:normal, successful completion”。 实验四 PL/SQL游标程序设计实验目的:通过实验内容掌握游标控制、隐式游标、显示游标、游标变量的应用。实验要求:在进行本实验之前,应熟练课程内容,在上机之前做好实验计划,编写好相应的代码。实验内容:1.操作职工号为7788的职工信息,如果存在该职工,修改他的工资,如果没有匹配则插入一新行。(隐式游标的应用).2. 游标变量的应用,阅读并执行下列代码,体会游标变量的应用。PL/SQL中,可以声明游标变量,在运行时刻设置游标对应的查询语句,可以动态实现查询。游标变量的使用步骤如下: 1)声明游标变量:TYPE type_name IS REF CURSOR RETURN return_type;2)打开游标变量: 如果要将一个游标变量与一个特定的select 语句关联,则需 Open 将其打开,语法如下:OPEN cursor_variable FOR select_statements;3)循环处理游标的内容。4)关闭游标变量: CLOSE cursor_variable
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 妇幼保健院护理工作流程
- 人口流动对区域经济的影响分析-洞察及研究
- 单证链跨境贸易流程优化-洞察及研究
- 深部岩浆活动演化-洞察及研究
- 小学生作文写作专项提升训练方案
- 二手体育用品的再利用研究-洞察及研究
- 新能源车间安全生产管理细则
- 学习动机策略研究-洞察及研究
- 电力线路故障诊断智能算法研究
- 中考语文现代文阅读分类复习教材
- 2025-2026学年人教版(2024)九年级物理全册第十四章 内能的利用(单元同步检测练习)(含答案)
- 第1课时 10的加、减法(教学设计)-2024-2025学年一年级上册数学人教版
- 2025至2030中国聚烯烃行业项目调研及市场前景预测评估报告
- 2025四川达州宣汉县国有资产管理服务中心县属国有企业招聘劳动合同职工26人笔试历年参考题库附带答案详解
- 2025年下半年杭州市上城区丁兰街道办事处招聘编外工作人员11人考试参考题库及答案解析
- 2025年合肥市广播电视台(文广集团)招聘12人考试参考题库及答案解析
- 利用“蜜蜂剪辑”和“千博手语”轻松制作听障学生微课
- 普通饮片车间共线生产风险评估报告
- 新教科版小学1-6年级科学需做实验目录
- GB/T 8492-2024一般用途耐热钢及合金铸件
- 读懂诗家语省公开课金奖全国赛课一等奖微课获奖课件
评论
0/150
提交评论