收藏 分销(赏)

Oracle数据库实验报告.doc

上传人:w****g 文档编号:3653651 上传时间:2024-07-12 格式:DOC 页数:70 大小:11.39MB 下载积分:16 金币
下载 相关 举报
Oracle数据库实验报告.doc_第1页
第1页 / 共70页
Oracle数据库实验报告.doc_第2页
第2页 / 共70页


点击查看更多>>
资源描述
______________________________________________________________________________________________________________ 《Oracle数据库原理》考核 学号:2014XXXXXX 《Oracle数据库原理》实验报告 姓名 XXXX 院系 计算机与信息技术学院 专业 计算机科学与技术 教师 XXX 2016年10月实验一:SQL语言 实验目的 1. 掌握SQL*PLUS、SQL Developer或PL/SQL Developer的使用; 2. 理解并掌握SQL语言; 3. 理解并掌握oracle的特殊对象和高级SQL命令; 实验时间 6学时 实验步骤 (这一部分务必认真填写,注意事项:1. 完成实验要求的工作,需列出执行命令和执行结果;2. 对执行结果的详细分析和解释;3. 错误以及错误原因;4. 文档格式清晰。) 1. 定义表student,要求具有列:学号(类型为number,主键)、姓名(类型为varchar2,长度为50个字符)、性别(类型为varchar2,长度为10个字符)、家庭住址(类型为varchar2,长度为500个字符); 2.在建立的student表中插入自己的学号、姓名、性别和家庭住址,并提交; 3.向student表中加入新列:电话(类型为number); 4.向student表插入学号为自己学号、姓名、性别、家庭住址和电话号码的新行; 5.显示目前表student中的所有行(需要使用4.4节的select语句); 6.向表student中添加一行:123456789、张三、男、山西太原、13100000000; 7.从student表中删除学号为123456789的行; 8.再次向表student中添加信息:123456789、张三、男、山西太原、13100000000; 9.再次向表student中添加信息:123456789、张三、男、山西太原、13100000000,查看能否成功,如果不成功,请解释原因; 不成功,违反唯一约束条件。 10.更新学号为123456789的学生信息,将其电话号码改为13300000000; 11.删除表student。 实验内容二: 1. 定义表student,要求具有列:学号(类型为number,主键)、姓名(类型为varchar2,长度为50个字符)、职位(类型为varchar2,长度为50个字符)、性别(类型为varchar2,长度为10个字符)、数学(类型为number)、英语(类型为number)、语文(类型为number)、总成绩(类型为number); 2.在建立的student表中插入以下信息并提交: 3.在student表中找出总成绩大于等于200分的学生学号、姓名以及总成绩; 4.在student表中找出数学、英语和语文成绩都大于等于60且总成绩大于等于200分的学生学号、姓名、数学成绩、英语成绩、语文成绩和总成绩; 5.找出student表中所有李姓和刘姓学生的姓名、学号和总成绩; 6.找出student表中数学成绩在[60,80]范围内的学生姓名、学号和数学成绩; 7.学生最终数学成绩定义为数学成绩开根号乘10,显示所有学生学号、姓名、数学成绩和最终数学成绩(提示:参考4.6.3节的数值函数); 8.计算student表中数学、英语和语文成绩的均值和方差; 9.计算不同职位学生数学成绩的均值和方差(提示:参考4.4.5节的聚集计算和4.4.6节的分组查询); 10.计算不同性别学生数学成绩的均值和方差(提示:参考4.4.5节的聚集计算和4.4.6节的分组查询)。 实验内容三 参考教材4.4.7~4.4.9,完成以下实验操作(可以使用SQL*PLUS、SQL Developer或PL/SQL Developer完成),并将实验步骤(含过程截图)记录到实验报告中。 1. 找出student表中满足以下条件的学生学号和姓名:数学成绩、英语成绩和语文成绩均大于student表中的某一学生的数学成绩、英语成绩和语文成绩; 2.新建address表,要求具有列:学号(类型为number,主键)、姓名(类型为varchar2,长度为50个字符)、籍贯(类型为varchar2,长度为200个字符); 3.将student表中所有学生的学号和姓名添加到address表中; 4.为address表中的学生添加籍贯信息如下: 5.根据表student和address,查询所有山西学生的学号、姓名和总成绩; 6.根据表student和address,查询所有山西和陕西学生的学号、姓名和总成绩(要求使用集合查询); 7.查询student表中总成绩大于平均总成绩的学生学号、姓名和总成绩。 实验内容四 参考教材4.5,完成以下实验操作(可以使用SQL*PLUS、SQL Developer或PL/SQL Developer完成),并将实验步骤(含过程截图)记录到实验报告中。 1. 使用SQL语句计算18*1.05的值; 2.新建表name,要求具有列:学号、姓名和性别,列类型与student表中相应列的类型一致; 3.新建表score,要求具有列:学号、姓名、数学、英语、语文和总成绩,列类型与student表中相应列的类型一致; 4.使用insert all语句将student表的信息分解到name表和score表中; 5.新建表student_shanxi和student_henan,表中列信息与student表的列信息一致; 6.结合student表和address表,使用insert first语句将student表中籍贯为山西的学生信息插入到表student_shanxi中,籍贯为河南的学生信息插入到表student_henan中; 7.新建表student_math,要求具有列:学号(类型为number,主键)、姓名(类型为varchar2,长度为50个字符)、数学(类型为varchar2,长度为10个字符); 8.将表student中籍贯为山西的学生学号、姓名和数学成绩插入到表student_math,要求数学成绩使用五档制,即分数在[90,100]范围内的记为A,在[80,90)内的记为B,在[70,80)内的记为C,在[60,70)内的记为D,60分以下的记为E(提示:可以使用case when语句,参考4.6.6); 9.使用merge into语句将student表中没有插入到student_math表中的信息插入到student_math表中。 实验内容五 层次查询 1. 显示student表中总成绩排名前10的学生学号和姓名(提示:使用rownum伪列); 2.新建表sc_district,要求具有列:id(类型为number),parent_id(类型为number),name(类型为varchar2,长度为255字符) 3.向表sc_district插入以下信息: _ 4.执行以下SQL语句: 解释上述SQL语句和执行结果(提示:参考4.7.2); 5.执行以下SQL语句: 解释上述SQL语句和执行结果(提示:参考4.7.2); 6.执行以下SQL语句: 解释上述SQL语句和执行结果(提示:参考4.7.2); 7.执行以下SQL语句: 解释上述SQL语句和执行结果(提示:参考4.7.2,并通过网络查找并了解 sys_connect_by_path函数的含义); 8.执行以下SQL语句: 解释上述SQL语句和执行结果(提示:参考4.7.2,并通过网络查找并了解sys_connect_by_path函数的含义); 9.执行以下SQL语句: 解释上述SQL语句和执行结果(提示:参考4.7.2,并通过网络查找并了解sys_connect_by_path函数的含义); 精品资料 实验二 Oracle数据类型 实验目的 1. 掌握Oracle中的数据类型 2. 了解Oracle大对象类型的概念、特点和使用方法 实验时间 2学时 实验步骤 1. 执行以下SQL语句: 解释上述SQL语句的执行结果; 2. 执行以下SQL语句: 解释上述SQL语句的执行结果; 3. 执行以下SQL语句: 解释上述SQL语句的执行结果; 4. 执行以下SQL语句: 解释上述SQL语句的执行结果; 5. 设计数据表验证以下结果: 6. 执行以下SQL语句: 解释上述SQL语句的执行结果; 7. 执行以下SQL语句: 解释上述SQL语句的执行结果; 8. 执行以下SQL语句: 解释上述SQL语句的执行结果; 9. 执行以下SQL语句: 解释上述SQL语句的执行结果(注意修改语句中的日期,以便于实验时的日期相匹配); 10. 执行以下SQL语句: 解释上述SQL语句的执行结果(注意修改语句中的日期,以便于实验时的日期相匹配); 11. 执行以下SQL语句: 解释上述SQL语句的执行结果; 12. 执行以下SQL语句: 解释上述SQL语句的执行结果; 13. 执行以下SQL语句: 解释上述SQL语句的执行结果; 14. 执行以下SQL语句: 解释上述SQL语句的执行结果(注意修改语句中的日期,以便于实验时的日期相匹配); select * from t_date where col=to_date('2016-11-25','yyyy-mm-dd'); select * from t_date where trunc(col)=to_date('2016-11-25','yyyy-mm-dd'); 15. 执行以下SQL语句: 解释上述SQL语句的执行结果; 16. 执行以下SQL语句: 解释上述SQL语句的执行结果; 17. 执行以下SQL语句: 解释上述SQL语句的执行结果; 18. 执行以下SQL语句: 解释上述SQL语句的执行结果; 19. 执行以下SQL语句: 解释上述SQL语句的执行结果; 20. 新建表t_lob,要求具有列:bcol(类型为BLOB)、ccol(类型为CLOB)、fcol(类型为BFILE); 21. 在t_lob中插入一行,要求在bcol中加入一个图片、在ccol中加入两行文本、在fcol中加入一个文件; 提示:添加BFILE文件可能需要新建目录项以支持非默认目录: 实验三 Oracle中的数据库对象管理 实验目的 1. 了解表空间; 2. 掌握Oracle中的数据表类型,包括堆表、索引组织表、外部表、临时表、嵌套表和对象表; 3. 掌握Oracle中的视图类型,包括关系视图和物化视图; 4. 掌握Oracle中的索引类型,包括B*索引、反转键索引、位图索引和函数索引; 5. 掌握Oracle中的序列 实验时间 4学时 实验步骤 实验内容1:表空间和表 1. 创建表空间ts,要求: a) 使用两个数据文件,大小均为1000M,均可以自动扩展,每次扩展100M,最大不超过2000M; b) 默认使用日志记录; c) 使用自动段管理和本地区管理,其中区大小自动分配; 显示创建表空间ts的SQL语句,并解释该语句; 2. 创建一个索引组织表it,要求: a) 具有列:学号(类型为number,主键)、姓名(类型为varchar2,长度为50个字符)、附加数据(类型为varchar2,长度为4000个字节); b) 百分比阈值设为45; c) 包含列:姓名; 显示创建该索引组织表的SQL语句,并解释该语句; 3. 创建两个csv文件,内容为: 然后创建一个外部表EXTERNAL_TABLE,要求: a) 具有列:编号(类型为number)、国家(类型为varchar2); b) 为上述两个文件所在的目录建立目录类型; c) 类型为ORACLE_LOADER; d) 访问参数为:FIELDS TERMINATED BY ','optionally enclosed BY '"'; e) 文件为上述两个文件; 显示创建该索引组织表的SQL语句,并解释该语句; 4. 修改文件1.csv或2.csv,查看外部表EXTERNAL_TABLE中的数据是否相应更改; 5. 创建类型person和employee: 执行以下SQL语句,并显示执行结果: 6. 执行以下SQL语句: 执行并解释以下SQL语句: 然后执行并解释以下SQL语句: 实验内容2:视图 1. 参考教材6.1.3,创建关系视图,要求满足: a) SQL查询为:SELECT s.学号,s.姓名,s.性别,a.籍贯,s.总成绩FROM student s, address where s.学号=a.学号; b) 创建时强制执行; c) 查询限制选择WITH CHECK OPTION 显示创建该关系视图的SQL语句,并解释该语句; 2. 参考教材6.3.1,创建实体化视图,要求满足: a) SQL查询为:SELECT s.学号,s.姓名,s.性别,a.籍贯,s.总成绩FROM student s, address where s.学号=a.学号; b) 需要时完全刷新; c) 立即生成视图 显示创建该实体化视图的SQL语句,并解释该语句; 实验内容3:索引、序列、同义词和数据字典 1. 参考教材6.4,定义表student_i,要求: a) 具有列:学号(类型为number)、姓名(类型为varchar2,长度为50个字符)、性别(类型为varchar2,长度为10个字符)、籍贯(类型为varchar2,长度为500个字符); b) 将学号指定为主键; c) 为性别创建位图索引; 将student和address表中相应的信息填入student_i; 2. 参考教材6.7,定义序列seq,要求: a) 初始化值为1; b) 步长值为1; c) 最大值设为NOMAXVALUE; d) 最小值设为1; e) 序列不循环; f) 无需缓冲。 显示并解释创建序列seq的SQL语句。接下来删除表student_i中的所有行,并执行以下SQL: insert into student_i select seq.nextval, s.姓名,s.性别,a.籍贯 from student s, address a where s.学号=a.学号 显示执行结果,并解释上述SQL语句的含义; 3. 参考教材6.8,为student表和address表分别创建同义词s和a,然后执行SQL语句: insert into student_i select seq.nextval, s.姓名,s.性别,a.籍贯 from s, a where s.学号=a.学号 4. 参考教材6.9,执行以下SQL语句: select * from dict where instr(comments,’index’)>=0 显示执行结果,并解释上述SQL语句的含义(提示:dict为dictionary的同义词,dictionary视图中存放了全部数据字典表的名称和解释); 5. 参考教材6.9,执行以下SQL语句: select * from dict_columns where table_name=’USER_INDEXES’ 显示执行结果,并解释上述SQL语句的含义(提示:dict_columns视图中存放了全部数据字典表里字段名称和解释) 实验四 PL/SQL 实验目的 1. 掌握PL/SQL代码组织方式与运行过程; 2. 掌握PL/SQL程序控制结构 实验时间 4学时 实验步骤 1. 执行以下PL/SQL代码: 解释以上代码,并显示执行结果 2. 执行以下PL/SQL代码: 解释以上代码,并显示执行结果; 3. 执行以下PL/SQL代码: 解释以上代码,并显示执行结果; 4. 执行以下PL/SQL代码: 解释以上代码,并显示执行结果; 5. 执行以下PL/SQL代码: 解释以上代码,并显示执行结果; 6. 执行以下PL/SQL代码: 解释以上代码,并显示执行结果; 7. 执行以下PL/SQL代码: 解释以上代码,并显示执行结果; 8. 执行以下PL/SQL代码: 解释以上代码,并显示执行结果; 9. 执行以下PL/SQL代码: 解释以上代码,并显示执行结果; 10. 执行以下PL/SQL代码: 解释以上代码,并显示执行结果; 11. 执行以下PL/SQL代码: 解释以上代码,并显示执行结果; 12. 执行以下PL/SQL代码: 解释以上代码,并显示执行结果; 13. 执行以下PL/SQL代码: 解释以上代码,并显示执行结果; 14. 执行以下PL/SQL代码: 解释以上代码,并显示执行结果; 15. 执行以下PL/SQL代码: 解释以上代码,并显示执行结果;1-20 16. 执行以下PL/SQL代码: 解释以上代码,并显示执行结果; Declare Type t_stus is varray(5) of address%rowtype; stus t_stus:=t_stus(null,null,null,null,null); Begin for i in 10..15 loop select * into stus(i-9) from address where 学号=i; dbms_output.put_line('学号:'||stus(i-9).学号||chr(13)|| '姓名:'||stus(i-9).姓名||chr(13)|| '籍贯:'||stus(i-9).籍贯); End loop; End; 17. 执行以下PL/SQL代码: 解释以上代码,并显示执行结果; Declare Type t_stus is varray(5) of address%rowtype; Stus t_stus:=t_stus() ; Begin Stus.extend(5); For i in 10..15 loop Select * into stus(i-9) from address where 学号=i; dbms_output.put_line('学号:'||stus(i-9).学号||chr(13)|| '姓名:'||stus(i-9).姓名||chr(13)|| '籍贯:'||stus(i-9).籍贯); End loop; End; 18. 执行以下PL/SQL代码: 解释以上代码,并显示执行结果; 19. 执行以下PL/SQL代码: 解释以上代码,并显示执行结果; 20. 执行以下PL/SQL代码: 解释以上代码,并显示执行结果; 21. 执行以下PL/SQL代码: 解释以上代码,并显示执行结果; 22. 执行以下PL/SQL代码: 解释以上代码,并显示执行结果; Welcome To Download !!! 欢迎您的下载,资料仅供参考!
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 通信科技 > 数据库/数据算法

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服