oracle实验三.docx

上传人:b****7 文档编号:10307164 上传时间:2023-02-10 格式:DOCX 页数:18 大小:22KB
下载 相关 举报
oracle实验三.docx_第1页
第1页 / 共18页
oracle实验三.docx_第2页
第2页 / 共18页
oracle实验三.docx_第3页
第3页 / 共18页
oracle实验三.docx_第4页
第4页 / 共18页
oracle实验三.docx_第5页
第5页 / 共18页
点击查看更多>>
下载资源
资源描述

oracle实验三.docx

《oracle实验三.docx》由会员分享,可在线阅读,更多相关《oracle实验三.docx(18页珍藏版)》请在冰豆网上搜索。

oracle实验三.docx

oracle实验三

 

课程名称Oracle数据库系统设计

实验序号03

实验项目数据库对象管理

实验地点综B502

实验学时2实验类型操作性

指导教师侯睿实验员

专业计算机科学与技术(师范)班级

学号姓名

 

2014年4月18日

 

实验报告要求

1、实验报告封面填表说明(每份实验报告必须附上封面)

(1)课程名称:

要求与实验大纲和实验指导书中的课程名称一致。

(2)实验序号:

指该课程的第几个实验。

(3)实验项目:

要求与实验大纲和实验指导书中的实验项目一致。

(4)实验地点:

填写完成该实验项目所在的实验室名称。

(5)实验学时:

要求与实验大纲和实验指导书中完成该实验项目所需学时一致。

(6)实验类型:

是指演示性、操作性、验证性、综合性、设计性。

演示性:

教师操作,学生观察,验证理论、说明原理和方法。

操作性:

学生按要求动手拆装、调试实验装置或上机操作,掌握其基本原理和方法。

验证性:

按实验指导书(教材)要求,由学生通过操作验证所学理论,加深对理论、知识的理解,掌握基本实验知识、方法、技能、数据处理等。

综合性:

实验内容涉及本课程的综合知识或相关课程的知识,运用多的知识、多种方法,按要求或自拟实验方案进行实验。

主要培养学生综合运用所学知识、实验方法和实验技能,以培养其分析、解决问题的能力。

设计性:

给定实验目的、要求和实验条件,学生自己设计实验方案并加以实现的实验。

学生独立完成从查阅资料、拟定实验方案、实验方法和步骤(或系统分析和设计)、选择仪器设备(或自行设计缺制作)进行实验并完成实验全过程,形成实验报告,培养学生自主实验的能力。

2、实验报告的格式

软件类实验报告格式

公共课实验报告格式

硬件类实验报告格式

序号

要求

序号

要求

序号

要求

1

实验目的及要求

1

实验目的及要求

1

实验预习

实验目的实验原理及内容(简明扼要,主要是实验接线图)

2

实验原理与内容

2

实验步骤

所用仪器设备

3

实验软硬件环境

3

操作要点

预习思考题

4

实验过程(实验步骤、记录、数据、分析)

4

实验结果

2

实验原始记录(经实验指导教师签名认可)

画出实验所需要的各种记录表格

5

测试/调试及实验结果分析

5

实验问题

3

实验报告

数据处理(数据表格、计算结果、误差、结果表达、曲线图等)

6

实验结论与体会

6

小结及讨论

结论

讨论

3、教师批改学生实验报告要求

(1)批改:

全部批改及更正错误。

(2)评分:

按百分制评分,不能评分为“优、良、中、差”或“A、B、C”。

(3)签名及批改日期:

任课教师必须在每份学生实验报告中签名和写上批改日期。

(4)成绩:

填写学生实验成绩表,实验成绩作为考试成绩评定的依据。

(4)评语:

任课教师批改学生实验报告时,应给出简明扼要的评语。

成绩:

教师评语

 

指导教师签名:

批阅日期:

一、实验目的及要求

通过上机实践熟悉Oracle11g的对象管理,包括表、索引、视图、同义词和序列几种数据库对象的管理等。

二、实验原理与内容

(1)使用SQL语句创建表

①创建学生表student(Sno,Sname,Ssex,Sage,Sclass),定义Sno为主键,添加约束:

对列Ssex的取值为男和女,Sage的取值为18到24。

②创建课程表course(Cno,Cname,Ccredit),定义Cno为主键。

③创建选修表SC(Sno,Cno,grade),Sno和cno为主键,Sno为外键,Cno为外键。

④使用insert语句向以上三个表插入以下数据。

student表course表

Sno

Sname

Ssex

Sage

Sclass

410601

李军

18

计算机科学与技术

410602

王红

18

计算机科学与技术

410603

赵平

19

计算机科学与技术

520801

张强

19

网络工程

520802

孙兰

18

网络工程

Cno

Cname

Ccredit

1

C程序设计

3

2

数据结构

4

3

数据库原理及应用

4

4

操作系统

4

SC表

Sno

Cno

Grade

410601

2

85

410601

3

88

410601

4

82

410602

3

75

410602

5

88

410603

3

90

410603

4

81

520801

3

88

(2)用SQL语句实现如下的查询。

①查询性别为女生的平均成绩。

②查询选修了课程号为3的所有学生的姓名。

③查询既选修了课程2又选修了课程3的学生姓名和学号。

④查询与“孙兰”在同一个系学习的学生。

(3)使用SQL语句创建student表基于姓名字段的索引,索引名为index_stu_name。

(4)使用SQL语句创建视图:

建立网络工程2班学生所选修的课程名称,视图名称为v_net_cname;并查询该视图。

(5)创建视图v_net_cname的同义词vnc并使用同义词进行查询。

(6)在学生表student中增加列sid,创建名称为seq_stu_id序列,序列的初值为1,增长值为1,最小值为1,最大值为9999,当向表student插入数据时,sid列的取值为序列seq_stu_id。

并向student表中插入一行数据(411605,'王强','男',20,'计算机科学与技术42',seq_stu_id.nextval)。

三、实验软硬件环境

1、多媒体计算机一台;

2、计算机上安装有Oracle11g数据库软件;

四、实验过程(实验步骤、记录、数据、分析)

1、打开进程,并以数据库管理员身份登陆:

(1)点击“开始”-“运行”,输入lsnrctlstart以启动监听程序服务,如下:

C:

\DocumentsandSettings\zhang>lsnrctlstart

LSNRCTLfor32-bitWindows:

Version11.1.0.6.0-Productionon18-4月-201416:

3

2:

38

Copyright(c)1991,2007,Oracle.Allrightsreserved.

启动tnslsnr:

请稍候...

TNSLSNRfor32-bitWindows:

Version11.1.0.6.0-Production

系统参数文件为d:

\app\zhang\product\11.1.0\db_1\network\admin\listener.ora

写入d:

\app\zhang\diag\tnslsnr\A34\listener\alert\log.xml的日志信息

监听:

(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(PIPENAME=\\.\pipe\EXTPROC1521ipc)))

监听:

(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=A34)(PORT=1521)))

正在连接到(DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1521)))

LISTENER的STATUS

------------------------

别名LISTENER

版本TNSLSNRfor32-bitWindows:

Version11.1.0.6.0-Produ

ction

启动日期18-4月-201416:

32:

41

正常运行时间0天0小时0分4秒

跟踪级别off

安全性ON:

LocalOSAuthentication

SNMPOFF

监听程序参数文件d:

\app\zhang\product\11.1.0\db_1\network\admin\listene

r.ora

监听程序日志文件d:

\app\zhang\diag\tnslsnr\A34\listener\alert\log.xml

监听端点概要...

(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(PIPENAME=\\.\pipe\EXTPROC1521ipc)))

(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=A34)(PORT=1521)))

监听程序不支持服务

命令执行成功

(2)输入netstartoracleserviceorcl以启动实例服务,:

C:

\DocumentsandSettings\zhang>netstartoracleserviceorcl

OracleServiceORCL服务正在启动...............................

OracleServiceORCL服务已经启动成功。

(3)通过命令行连接到SQL*Plus:

C:

\DocumentsandSettings\zhang>sqlplussys/sysassysdba

SQL*Plus:

Release11.1.0.6.0-Productionon星期五4月1816:

38:

052014

Copyright(c)1982,2007,Oracle.Allrightsreserved.

连接到:

OracleDatabase11gEnterpriseEditionRelease11.1.0.6.0-Production

WiththePartitioning,OLAP,DataMiningandRealApplicationTestingoptions

SQL>

2、使用SQL语句创建表:

①创建学生表student(Sno,Sname,Ssex,Sage,Sclass),定义Sno为主键,添加约束:

对列Ssex的取值为男和女,Sage的取值为18到24:

SQL>createtablestudent(

2Snonumber(20)primarykey,

3Snamevarchar2(8),

4Ssexchar

(2)check(Ssexin('男','女')),

5Sagenumber(4)check(Sagebetween18and24),

6Sclassvarchar2(20)

7*)

SQL>/

表已创建。

SQL>

②创建课程表course(Cno,Cname,Ccredit),定义Cno为主键。

SQL>createtablecourse(

2Cnonumber

(2)primarykey,

3Cnamevarchar2(16),

4Ccreditnumber

(2)

5)

6/

表已创建。

SQL>

③创建选修表SC(Sno,Cno,grade),Sno和cno为主键,Sno为外键,Cno为外键。

SQL>createtableSC(

2Snonumber(20),

3Cnonumber

(2),

4gradenumber(8),

5constraintSC_studentforeignkey(Sno)referencesstudent(Sno),

6constraintSC_courseforeignkey(Cno)referencescourse(Cno),

7constraintSC_primaryprimarykey(Sno,Cno)

8*)

SQL>/

表已创建。

SQL>

④使用insert语句向以上student表插入以下数据:

SQL>insertintostudent

2values

3*(410601,'李军','男',18,'计算机科学与技术')

SQL>/

已创建1行。

SQL>insertintostudent

2values

3*(410602,'王红','女',18,'计算机科学与技术')

SQL>/

已创建1行。

SQL>insertintostudent

2values

3*(410603,'赵平','女',19,'计算机科学与技术')

SQL>/

已创建1行。

SQL>insertintostudent

2values

3*(520801,'张强','男',19,'网络工程')

SQL>/

已创建1行。

SQL>insertintostudent

2values

3*(520802,'孙兰','女',18,'网络工程')

SQL>/

已创建1行。

SQL>

使用insert语句向以上course表插入以下数据:

SQL>insertintocourse

values

(1,'C程序设计',3)

SQL>/

已创建1行。

SQL>

SQL>insertintocourse

values

(2,'数据结构',4)

SQL>/

已创建1行。

SQL>

SQL>insertintocourse

values

(3,'数据库原理及应用',4)

SQL>/

已创建1行。

SQL>

SQL>insertintocourse

values

(4,'操作系统',4)

SQL>/

已创建1行。

SQL>

使用insert语句向以上SC表插入以下数据:

SQL>insertintoSC

values

(410601,2,85)

SQL>/

已创建1行。

SQL>

SQL>insertintoSC

values

(410601,3,88)

SQL>/

已创建1行。

SQL>

SQL>insertintoSC

values

(410601,4,82)

SQL>/

已创建1行。

SQL>

SQL>insertintoSC

values

(410602,3,75)

SQL>/

已创建1行。

SQL>

SQL>insertintoSC

2values

3*(410602,5,88)

SQL>/

insertintoSC

*

第1行出现错误:

ORA-02291:

违反完整约束条件(SYS.SC_COURSE)-未找到父项关键字

SQL>insertintoSC

values

(410603,3,90)

SQL>/

已创建1行。

SQL>

SQL>insertintoSC

values

(410603,4,81)

SQL>/

已创建1行。

SQL>

SQL>insertintoSC

values

(520801,3,88)

SQL>/

已创建1行。

SQL>

(4)用SQL语句实现如下的查询。

①查询性别为女生的平均成绩。

SQL>SELECTavg(grade)FROMSC

2WHERESnoIN

3(SELECTSnoFROMstudent

4WHERESsex='女')

5/

AVG(GRADE)

----------

82

SQL>

②查询选修了课程号为3的所有学生的姓名。

SQL>SELECTSnameFROMstudent

2WHERESnoIN

3(SELECTSnoFROMSC

4WHERECno=3)

5/

SNAME

--------

李军

王红

赵平

张强

SQL>

③查询既选修了课程2又选修了课程3的学生姓名和学号。

SQL>SELECTSno,SnameFROMstudent

2WHERESnoIN

3(SELECTSnoFROMSC

4WHERECno=2)

5andSnoIN

6(SELECTSnoFROMSC

7WHERECno=3)

8/

SNOSNAME

------------------

410601李军

SQL>

④查询与“孙兰”在同一个系学习的学生。

SQL>select*fromstudent

2whereSclassin

3(

4selectSclassfromstudent

5whereSname='孙兰'

6)

7/

SNOSNAMESSSAGESCLASS

--------------------------------------------------

520801张强男19网络工程

520802孙兰女18网络工程

SQL>

(5)使用SQL语句创建student表基于姓名字段的索引,索引名为index_stu_name。

SQL>createindexindex_stu_name

2*onstudent(Sname)

SQL>/

索引已创建。

(6)使用SQL语句创建视图:

建立网络工程2班学生所选修的课程名称,视图名称为v_net_cname;并查询该视图。

①创建视图:

SQL>createviewv_net_cname

2as

3selectCnamefromcourse

4whereCnoin(

5selectCnofromSC

6whereSnoin(

7selectSnofromstudent

8whereSclass='网络工程'

9)

10*)

11/

视图已创建。

②查询视图:

SQL>select*fromv_net_cname;

CNAME

----------------

数据库原理及应用

SQL>

(7)创建视图v_net_cname的同义词vnc并使用同义词进行查询。

①创建同义词:

SQL>createpublicsynonymvncforv_net_cname;

同义词已创建。

SQL>

②使用同义词进行查询:

SQL>select*fromvnc;

CNAME

----------------

数据库原理及应用

SQL>

(8)在学生表student中增加列sid,创建名称为seq_stu_id序列,序列的初值为1,增长值为1,最小值为1,最大值为9999,当向表student插入数据时,sid列的取值为序列seq_stu_id。

并向student表中插入一行数据(411605,'王强','男',20,'计算机科学与技术42',seq_stu_id.nextval)。

①在学生表student中增加列sid:

SQL>altertablestudentaddsidnumber(5)

SQL>/

表已更改。

SQL>

②创建名称为seq_stu_id序列:

SQL>createsequenceseq_stu_id

2startwith1

3incrementby1

4minvalue1

5maxvalue9999

6nocache

7nocycle

8*order

SQL>/

序列已创建。

SQL>

③并向student表中插入一行数据:

SQL>insertintostudent

2values

3(411605,'王强','男',20,'计算机科学与技术42',seq_stu_id.nextval)

4/

已创建1行。

SQL>

五、测试/调试及实验结果分析

1、遇到的问题:

(1)当输入lsnrctlstart以启动进程监听时,显示以下信息:

C:

\Users\Administrator>lsnrctlstart

LSNRCTLfor32-bitWindows:

Version11.1.0.6.0-Productionon20-3月-201217:

2

5:

05

Copyright(c)1991,2007,Oracle.Allrightsreserved.

启动tnslsnr:

请稍候...

TNSLSNRfor32-bitWindows:

Version11.1.0.6.0-Production

系统参数文件为D:

\app\Administrator\product\11.1.0\db_1\network\admin\listener.or

a

写入d:

\app\administrator\diag\tnslsnr\Chenk2007\listener\alert\log.xml的日志信息

监听:

(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(PIPENAME=\\.\pipe\EXTPROC1521ipc)))

监听该对象时出错:

(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=202.192.134.11)(PORT

=1521)))

TNS-12545:

因目标主机或对象不存在,连接失败

TNS-12560:

TNS:

协议适配器错误

TNS-00515:

因目标主机或对象不存在,连接失败

32-bitWindowsError:

49:

Unknownerror

监听程序未能启动。

请参阅上面的错误消息...

因此,打开“配置和移植工具”中的“NetManager”把“主机名”改为本机的主机名“Chenk2007”,这样即可解决本问题。

六、实验结论与体会

总的来说,通过本次实验,我学会了与Oracle进行交互的工具SQL*Plus的一些相关功能和操作,同时还学会了

(1)创建表、视图、索引、序列等;

(2)查询表、视图、索引、序列等;

这些其实都是一些入门的、最基本的知识,在接下来的学习中我会更加努力,学会Oracle数据PL/SQL语言的更多知识。

2014年04月18日

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 高中教育 > 英语

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1