1、_Oracle数据库原理考核 学号:2014XXXXXXOracle数据库原理实验报告姓名 XXXX 院系 计算机与信息技术学院 专业 计算机科学与技术 教师 XXX 2016年10月实验一:SQL语言实验目的1. 掌握SQL*PLUS、SQL Developer或PL/SQL Developer的使用;2. 理解并掌握SQL语言;3. 理解并掌握oracle的特殊对象和高级SQL命令;实验时间6学时实验步骤(这一部分务必认真填写,注意事项:1. 完成实验要求的工作,需列出执行命令和执行结果;2. 对执行结果的详细分析和解释;3. 错误以及错误原因;4. 文档格式清晰。)1. 定义表stude
2、nt,要求具有列:学号(类型为number,主键)、姓名(类型为varchar2,长度为50个字符)、性别(类型为varchar2,长度为10个字符)、家庭住址(类型为varchar2,长度为500个字符);2.在建立的student表中插入自己的学号、姓名、性别和家庭住址,并提交;3.向student表中加入新列:电话(类型为number);4.向student表插入学号为自己学号、姓名、性别、家庭住址和电话号码的新行;5.显示目前表student中的所有行(需要使用4.4节的select语句);6.向表student中添加一行:123456789、张三、男、山西太原、13100000000
3、;7.从student表中删除学号为123456789的行;8.再次向表student中添加信息:123456789、张三、男、山西太原、13100000000;9.再次向表student中添加信息:123456789、张三、男、山西太原、13100000000,查看能否成功,如果不成功,请解释原因;不成功,违反唯一约束条件。10.更新学号为123456789的学生信息,将其电话号码改为13300000000;11.删除表student。实验内容二:1. 定义表student,要求具有列:学号(类型为number,主键)、姓名(类型为varchar2,长度为50个字符)、职位(类型为varch
4、ar2,长度为50个字符)、性别(类型为varchar2,长度为10个字符)、数学(类型为number)、英语(类型为number)、语文(类型为number)、总成绩(类型为number);2.在建立的student表中插入以下信息并提交:3.在student表中找出总成绩大于等于200分的学生学号、姓名以及总成绩;4.在student表中找出数学、英语和语文成绩都大于等于60且总成绩大于等于200分的学生学号、姓名、数学成绩、英语成绩、语文成绩和总成绩;5.找出student表中所有李姓和刘姓学生的姓名、学号和总成绩;6.找出student表中数学成绩在60,80范围内的学生姓名、学号和数
5、学成绩; 7.学生最终数学成绩定义为数学成绩开根号乘10,显示所有学生学号、姓名、数学成绩和最终数学成绩(提示:参考4.6.3节的数值函数); 8.计算student表中数学、英语和语文成绩的均值和方差; 9.计算不同职位学生数学成绩的均值和方差(提示:参考4.4.5节的聚集计算和4.4.6节的分组查询);10.计算不同性别学生数学成绩的均值和方差(提示:参考4.4.5节的聚集计算和4.4.6节的分组查询)。实验内容三 参考教材4.4.74.4.9,完成以下实验操作(可以使用SQL*PLUS、SQL Developer或PL/SQL Developer完成),并将实验步骤(含过程截图)记录到实
6、验报告中。1. 找出student表中满足以下条件的学生学号和姓名:数学成绩、英语成绩和语文成绩均大于student表中的某一学生的数学成绩、英语成绩和语文成绩; 2.新建address表,要求具有列:学号(类型为number,主键)、姓名(类型为varchar2,长度为50个字符)、籍贯(类型为varchar2,长度为200个字符);3.将student表中所有学生的学号和姓名添加到address表中;4.为address表中的学生添加籍贯信息如下:5.根据表student和address,查询所有山西学生的学号、姓名和总成绩;6.根据表student和address,查询所有山西和陕西学生
7、的学号、姓名和总成绩(要求使用集合查询); 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语句将stud
8、ent表的信息分解到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中籍贯为山西的学生
9、学号、姓名和数学成绩插入到表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
10、_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,并通过网络查找
11、并了解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. 设计数据表
12、验证以下结果: 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语句:
13、解释上述SQL语句的执行结果(注意修改语句中的日期,以便于实验时的日期相匹配);select * from t_datewhere col=to_date(2016-11-25,yyyy-mm-dd);select * from t_datewhere trunc(col)=to_date(2016-11-25,yyyy-mm-dd);15. 执行以下SQL语句:解释上述SQL语句的执行结果;16. 执行以下SQL语句:解释上述SQL语句的执行结果;17. 执行以下SQL语句:解释上述SQL语句的执行结果;18. 执行以下SQL语句:解释上述SQL语句的执行结果;19. 执行以下SQL语句:解
14、释上述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*索引、反转键索
15、引、位图索引和函数索引;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) 包含列:姓名;显示创建该
16、索引组织表的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和e
17、mployee:执行以下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.性别
18、,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;
19、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,然后执行
20、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=US
21、ER_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
22、代码:解释以上代码,并显示执行结果;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代码:解释以上代码,并显示执行
23、结果;1-2016. 执行以下PL/SQL代码:解释以上代码,并显示执行结果;DeclareType t_stus is varray(5) of address%rowtype;stus t_stus:=t_stus(null,null,null,null,null);Beginfor i in 10.15 loopselect * 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).籍贯);E
24、nd loop;End; 17. 执行以下PL/SQL代码:解释以上代码,并显示执行结果;DeclareType t_stus is varray(5) of address%rowtype;Stus t_stus:=t_stus() ;BeginStus.extend(5);For i in 10.15 loopSelect * 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 ToDownload !欢迎您的下载,资料仅供参考!
©2010-2024 宁波自信网络信息技术有限公司 版权所有
客服电话:4008-655-100 投诉/维权电话:4009-655-100