oracle实验报告.docx

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

oracle实验报告.docx

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

oracle实验报告.docx

oracle实验报告

实验一初识ORACLE数据库

实验目的

(1)了解oracle11g的4个版本。

(2)掌握oracle11g的安装和卸载方法。

(3)掌握部分常用命令。

实验内容

(1)sqlplus登录(两种方法)

Acmdsqlplussys/orcl@orclassysdba

Sqlplussystem/orcl@orcl

Sqlplusscott/tiger@orcl

Bsqlplus工具

请输入用户名:

sysassysdba

或者System或者scott

Connsystem/orcl

showuser--显示当前连接用户

(2)Alteruserscottidentifiedbytigeraccountunlock;

Select*fromemp;

desc表名    显示表的结构

(3)spool

该命令可以将sqlplus屏幕上的内容输出到制定的文件中去

sql>spoold:

\b.sql

sql>select*fromemp;

spl>spooloff

说明:

spool命令将select*fromemp;的查询结果输出到指定位置的文件中然后spooloff类似于IO的开启/关闭

(4)&

可以替代变量,而该变量在执行时需要用户输入

sql>select*fromempwherejob='&job';

oracle会提示用户输入值

(5)显示和设置环境变量

可以用来控制输出的各种格式。

Ølinesize设置显示行的宽,默认是80个自己字符

sql>showlinesize

sql>setlinesize120

Øpagesize设置每页显示的行数默认是14,用法同linesize

Øsettimingon--默认为OFF,设置查询耗时,可用来估计SQL语句的执行时间,测试性能

Øsetlinesize1000--设置屏幕显示行宽,默认100

SQL>setautocommitON--设置是否自动提交,默认为OFF

SQL>setpauseon--默认为OFF,设置暂停,会使屏幕显示停止,等待按下ENTER键,再显示下一页

Øexit      退出SQL*PLUS

Øclearscreen  清空当前屏幕显示

 

实验数据记录及分析(或程序及运行结果)

 

评语:

日期:

2014年月日

实验二服务和OEM

实验目的

(1)掌握使用dos命令启动三个常用服务的方法

(2)掌握OEM的使用方法

(3)掌握使用DBCA创建数据库的方法

实验内容

(1)练习用dos命令启动和停止OracleDBConsoleorcl服务、OracleOraDb11g_home1TNSListener服务,并查看OracleDBConsoleorcl服务的状态。

a启动OracleDBConsoleorcl(Oracle数据库控制台服务)

Ø启动:

emctlstartdbconsole

Ø关闭:

emctlstopdbconsole

b启动OracleOraDb10g_home1TNSListener(监听器服务)

Ø启动:

lsnrctlstart

Ø关闭:

lsnrctlstop

Ø查看监听状态:

lsnrctlstatus

c启动OracleServiceORCL(Oracle数据库服务)

Ø启动:

netstartOracleServiceORCL

Ø停止:

netstopOracleServiceORCL

(2)启动OEM,以sys用户sysdba身份登录到数据库。

打开各个页面,查看其基本组成。

(3)使用DBCA创建数据库test。

实验数据记录及分析(或程序及运行结果)

 

评语:

日期:

2014年月日

实验三数据库的启动和关闭

实验目的

(1)掌握使用DBCA创建数据库的方法

(2)掌握启动和关闭数据库的命令

实验内容

(1)使用DBCA创建数据库test,并通过SQLPLUS登录到test数据库。

(两种方式:

A.setoracle_sid=test,然后再正常登录

B.sqlplussys/密码@testassysdba

登录以后可以通过showparameterdb_name查看数据库的名称)

(2)练习启动数据库的五种命令,并理解它们的使用含义。

练习使用TRANSACTIONAL、IMMEDIATE选项来关闭数据库。

(3)只有数据库处于open模式下scott用户才能连接上,nomount和mount模式不行。

试着设计一系列命令,验证这句话的正确性。

(4)对于startuprestrict,分别使用system用户和scott用户连接,将命令结

果和由此总结出来的结论记录到实验报告中,再使用alter命令结束限制访问状态,并将使用的命令按顺序记录到实验报告中。

实验数据记录及分析(或程序及运行结果)

(2)

setoracle_sid=test

Sqlplussys/orclassysdba

Showparameterdb_name

Shutdown

Startup

Shutdownimmediate

Startupnomount

Shutdownnormal

Startupopen

Shutdowntransactional

Startupforce

Shutdownabort

Startuprestrict

Shutdownnormal

Startupnomount

(3)

Shutdownnormal

Startupopen

connscott/tiger已连接

connsys/orclassysdba

shutdownimmediate

startupmount

connscott/tiger警告:

您不再连接到ORACLE。

connsys/orclassysdba

shutdownimmediate

startupnomount

connscott/tiger警告:

您不再连接到ORACLE。

connsys/orclassysdba

shutdownimmediate

(4)

startuprestrict

connsystem/orclassysdba

connscott/tiger警告:

您不再连接到ORACLE。

connsystem/orclassysdba已连接

showparameterdb_name

altersystemdisablerestrictedsession系统已更改。

connscott/tiger已连接。

结论:

在受限制的情况下,管理员用户能够连接上数据库,而一般用户不能连接到数据库。

用alter语句结束限制后,一般用户能够连接并能使用数据库。

 

评语:

日期:

2014年月日

实验四表和数据查询

实验目的

(1)掌握使用SQL语句手工创建表和使用OEM创建表的方法

(2)掌握用PL/SQL语句对数据库表进行插入、修改和删除数据的操作

(3)理解数据更新操作时要注意数据的完整性

(4)掌握SELECT语句的基本语法

实验内容

(1)启动SQL*Plus,根据上学期集中实践题目创建各自的表,注意必须创建约束。

(2)利用INSERTINTO命令向各表添加数据(建议至少向其中三个表添加数据,这三个表之间必须有外键关系)。

(3)根据各自创建的表,完成下列类似的查询(这些查询是基于学生表、课程表、成绩表给出来的题目,其他同学先根据以下查询改编各自题目,然后再给出查询答案)。

(a)SELECT基本使用

●查询每个同学的所有数据。

●查询学号为“061210”同学的姓名、性别和专业。

●查询每个女同学的姓名、性别,并将结果中各列的标题指定为姓名和性别;

●查询所有其姓名含有“林”的同学的专业、性别;

●查询课程编号“101”,且成绩在70~80之间的同学的学号;

(b)嵌套查询

●查询选修“101”课程的同学的学号、姓名和专业信息;

●查询没有选修“101”课程的同学的学号、姓名和专业信息;

●查询比通信工程专业的同学总学分都高的同学学号、姓名和专业信息;

●查询平均成绩高于80分的同学的学号、姓名、性别和专业;

(c)连接查询

●查询每个同学的学号、姓名、课程名和成绩信息;

●查询总学分大于48分的同学姓名和其选课情况(包括课程名称、学时和成绩);

(d)数据汇总

●查询计算机专业同学总学分的平均分;

●查询全体同学的总学分的最高分和最低分;

●查询计算机专业同学总人数;

●查询学号为“061101”同学的各门课程总分;

(e)GROUPBY

●查询每个专业的总人数;

●查询每位同学的平均分;

(f)ORDERBY

●查询每个同学的学号、姓名、课程名和成绩信息,并按成绩由低到高排列输出;

(g)利用PL/SQL的UPDATE命令修改表数据:

●在数据表XS中,将学号(XH)为“061101”同学的专业(ZYM)改为“通信工程”;

●在数据表XS_KC中,将成绩(CJ)小于70分的所有同学成绩置空;

●在数据表XS_KC中,将计算机系的学生成绩增加10分;

(h)利用PL/SQL的DELETE命令删除数据表XS_KC中所有男生的成绩记录。

实验数据记录及分析(或程序及运行结果)

(1)

启动:

setoracle_sid=orcl

Sqlplussys/orclassysdba

Connscott/tiger

创建表:

createtableBumen

(Bumenidchar(5)primarykey,

Bnamevarchar2(20)notnull

);

createtableTeacher

(Tidchar(5)primarykey,

Tnamevarchar2(20)notnull,

Tsexchar

(2)check(Tsex='女'orTsex='男'),

Temailvarchar2(30),

Tjopvarchar2(20)notnull,

Tzhichengvarchar2(20)notnull,

Bumenidchar(5)referencesBumen(Bumenid)notnull

);

createtableJC

(JCidchar(5)primarykey,

JCnamevarchar2(20)notnull,

JCcontentvarchar2(20),

JCtimevarchar2(15),

Tidchar(5)referencesTeacher(Tid)notnull

);

(2)

insertintoBumenvalues('20001','人事部');

insertintoBumenvalues('20002','财务处');

insertintoBumenvalues('20003','设备管理处');

insertintoBumenvalues('20004','教务处');

insertintoBumenvalues('20005','医务处');

 

insertintoTeachervalues('10001','蓝琪蕊','女','3512055451@','班主任','教授','20001');

insertintoTeachervalues('10002','韩欣宸','女','785210632@','辅导员','副教授','20002');

insertintoTeachervalues('10003','穆黎','女','6523018852@','辅导员','讲师','20003');

insertintoTeachervalues('10004','水一涵','女','3512055459@','班主任','教授','20004');

insertintoTeachervalues('10005','卓一航','男','4512055451@','班主任','教授','20001');

insertintoJCvalues('40001','降职','11年被降职处理','2011-02-03','10001');

insertintoJCvalues('40002','获奖','带学院获校级一等奖','2009-03-12','10002');

insertintoJCvalues('40003','获荣誉称号','辅导班获省级称号','2013-03-06','10003');

insertintoJCvalues('40004','降职','12年被降职处理','2013-04-06','10004');

insertintoJCvalues('40005','获荣誉称号','辅导班获省级称号','2012-03-06','10005');

(3)

A

查询每个教师的所有数据

Select*fromTeacher;

查询教师号为“10001”的姓名,性别和职称

SelectTname,Tsex,TzhichengfromTeacherwhereTid=10001;

查询每个女教师的姓名,性别,并将结果中各列的标题指定为姓名和性别

SelectTname姓名,Tsex性别fromTeacherwhereTsex='女';

查询所有其姓名含有“水”的教师的职称,性别

SelectTsex,TzhichengfromTeacherwhereTnamelike'%水%';

查询奖惩编号为“40001”且奖惩名字为降职的教师号

SelectTidfromJCwhereJCname='降职'andJCid=40001;

B

查询奖惩编号为“40002”教师的教师号,姓名和电子邮箱

SelectTid,Tsex,TemailfromTeacherwhereTidin(selectTidfromJCwhereJCid=40002);

查询奖惩编号不是“40002”教师的教师号,姓名和电子邮箱

SelectTid,Tsex,TemailfromTeacherwhereTidnotin(selectTidfromJCwhereJCid=40002);

查询比通信工程专业的同学总学分都高的同学学号、姓名和专业信息;

SelectXH,XM,ZYMfromXSwhereCJ>all(selectCJfromXS_KCwhereZYM=’通讯工程’)andXS_KC.XH=XS.XH);

查询平均成绩高于80分的同学的学号、姓名、性别和专业;

SelectXH,XM,XB,ZYMfromXS_KCwhereAVG(CJ)>80;

C

查询每名教师的教师号,姓名,部门号和部门名;

SelectTid,Tname,Teacher.Bumenid,BnamefromBumen,TeacherwhereBumen.Bumenid=Teacher.Bumenid;

查询总学分大于48分的同学姓名和其选课情况(包括课程名称、学时和成绩);

SelectXM,KCM,XS,CJfromXS,XS_KC,KCwhereZXF>48andXS.XH=XS_KC.XHandKC.KCH=XS_KC.KCH;

D

查询计算机专业同学总学分的平均分;

SelectAVG(ZXF)fromXSgroupbyZYM havingZYM=’计算机’;

查询全体老师的部门编号的最高和最低;

SelectMax(Bumenid),Min(Bumenid)fromTeacher;

查询’20001’部门的总人数

Selectcount(*)fromTeachergroupbyBumenidhavingBumenid=20001;

查询学号为“061101”同学的各门课程总分;

SelectSum(CJ)fromXS_KC,groupbyCJhavingXH=061101

E

查询每个部门的总人数;

SelectBumenid,count(*)fromTeachergroupbyBumenid;

查询每位同学的平均分;

SelectXH,Avg(CJ)fromXS_KCgroupbyXH,CJ;

F

查询每个老师的教师号,姓名,部门名字和奖惩号并按部门号由低到高排序;

SelectTeacher.Tid,Teacher.Tname,Bumen.Bname,JC.JCidfromBumen,JC,TeacherwhereBumen.Bumenid=Teacher.BumenidandTeacher.Tid=JC.TidorderbyTeacher.Bumenid;

G

在教师表中,将教师号为“10003”教师的职称改为教授;

UpdateTeachersetTzhicheng='教授'whereTid=10003;

在奖惩表中将教师号小于20003的奖惩内容置空

UpdateJCsetJCcontent=nullwhereTid<10003;

在奖惩表中,教师号为10002的奖惩号加5;

UpdateJCsetJCid=JCid+5whereTid=10002;

H

撤除奖惩表中女教师号为10002的记录;

DeletefromJCwhereTid=10002;

 

评语:

日期:

2014年月日

实验五视图和索引

实验目的

(1)了解视图的重要性

(2)掌握视图的建立

(3)掌握视图的使用

(4)掌握索引的使用方法

(5)掌握索引的概念及分类

实验内容

针对实验四中的各数据表,完成下列操作(这些题目是基于学生表、课程表、成绩表给出来的题目,其他同学先改编各自题目,然后再给出答案)。

(1)使用PL/SQL语句CREATEVIEW命令创建下列视图:

●视图view_female,包含学生信息表中所有女生信息;

●视图view_count,包含每个专业的名称和学生人数信息;

●视图view_sum,包含每个同学的学号、姓名、课程总成绩信息;

●视图view_score,包含每个同学的学号、姓名、课名,成绩信息;

(2)使用语句DROPVIEW命令删除视图view_female。

(3)在SQLPlus中,通过视图,执行下列操作:

●查询“计算机”专业的学生人数;

●查询学号“061101”同学的所选课程和课程成绩信息

●通过视图view_female,插入一个女同学的信息

●通过视图view_score,删除061101的信息,能否删除?

(4)使用PL/SQL命令CREATEINDEX建立以下两个索引:

●对课程信息表KC的KCM列创建索引idx_kcm;

●对学生表XS的XH、XM列创建唯一索引idx_xhxm;

(5)通过数据字典查看XS表的索引信息

实验数据记录及分析(或程序及运行结果)

(1)

视图view_female包含教师信息表所有女生信息

createviewview_female

as

select*fromTeacherwhereTsex='女';

视图view_count包含每个部门级部门的老师人数。

createviewview_count(Bumenid,Tcount)

as

selectBumenid,count(Bumenid)fromTeachergroupbyBumenid;

视图view_sum,包含教师号,姓名和部门号总和

createviewview_sum(Tid,Tname,Tsum)

as

selectTid,Tname,sum(Bumenid)

fromTeachergroupbyTid,Tname;

视图view_score包含每个教师的教师号,教师名,部门号和部门名称

createviewview_score(Tid,Tname,Bumenid,Bname)

as

selectTid,Tname,Bumen.Bumenid,Bumen.BnamefromTeacher,BumenwhereTeacher.Bumenid=Bumen.Bumenid;

(2)

使用Dropview命令删除视图view_female

Dropviewview_female;

(3)

查询Bumenid=20002的教师人数;

SelectTcountfromview_countwhereBumenid=20002;

查询教师号为10001的教师名及部门信息

Select*fromview_scorewhereTid=10001;

通过视图view_female,插入一个女教师的信息

insertintoview_femalevalues('10006','蓝琪','女','3512055452@',','教授','20006');

通过视图view_score,删除10001的信息能否删除?

不能,违反完整性约束条件

(4)

对奖惩表中的JCname列建立索引idx_JCname;

createindexidx_JCname

onJC(JCname);

对教师表Teacher的Tid,Tname列创建唯一索引idx_TT;

createuniqueindexidx_TT

onTeacher(Tid,Tname);

(5)

通过数据字典查看Teacher的索引信息

select*fromDBA_INDEXES;

select*fromeDBA_INDEXESwhereTABLENAME='TEACHER';

 

评语:

日期:

2014年月日

实验六PL/SQL编程

实验目的

(1)掌握变量的分类及使用

(2)掌握各种运算符的使用

(3)掌握各种控制语句的使用

(4)游标的使用

实验内容

(1)编写PL/SQL程序,分别计算1——100之间所有偶数和奇数之和。

(2)编写一个PL/SQL块,要求用户输入三个数,输出三个数中最大的数。

(3)编写一个PL/SQL块,输出所有学生的学号、姓名、性别,课程名,成绩。

(4)查询姓名为“王林”的学

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

当前位置:首页 > 解决方案 > 学习计划

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

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