Oracle实验报告.docx
《Oracle实验报告.docx》由会员分享,可在线阅读,更多相关《Oracle实验报告.docx(32页珍藏版)》请在冰点文库上搜索。
Oracle实验报告
Oracle
数据库实验报告
学院:
专业班级:
程:
号:
名:
软件与信息工程学院
10级软件工程/软工三班数据库实践
实验一:
Oracle10g安装卸载及相关工具配置
、实验目标:
安装Oracle10g,了解OEM,通过DBCA安装数据库,通过DBCA删除数据库,sqldeveloper连接数据库,卸载oracle1Og。
二、实验学时数
2学时
三、实验步骤和内容:
1、安装OraclelOg(默认安装数据库)
双击,
选择基本安装,安装目录D:
盘,标准版,默认数据库Orel,口令bhbh。
进入先决条件检查界面时:
网络配置需求选项不用打勾,直接下一步,是。
直到安装成功。
2、登陆和了解OEM
主要是已网页的形式来对数据库进行管理。
-OraDb10g_home1-配置和移植工具->DatabaseConfigurationAssistant-删除数据库->……
4、通过DBCA安装数据库xscj
程序->Oracle-OraDb10g_home1-配置和移植工具->DatabaseConfiguration
Assistant->&」建数据库->
5、sqldevelOper连接数据库
打开sqldeveloper,新建连接
连接名:
system_Ora
用户名:
system
口令:
bhbh
主机名:
本机计算机名
SID:
xscj
测试,显示成功,连接,保存。
6、卸载oracle10g
Windows下
1>停止所有Oracle服务,点UniversalInstaller卸载
2〉删除注册表中的所有关于Oracle项
在HKEY_LOCAL_MACHINE\SOFTWARE删除Oracle目录
3>删除硬盘上所有Oracle文件。
(1)Oracle安装文件
(2)系统目录下,在Programfiles文件夹中的Oracle文件
四、上机作业
根据实验步骤完成逐个实验目标中的任务。
五、心得体会
通过这次的实验,我了解了oracle数据库的情况。
懂得了数据库就是把数据存储在一个类似与仓库的地方,需要用时才从数据库里调出来。
通过上机实践,知道了装数据库和卸载数据库,并且学会了怎样连数据库。
实验二:
Oracle10g手工建数据库
、实验目标:
安装Oracle10g数据库环境,手工建立数据库;通过NetConfigurationAssistant建立监听,使用sqldeveloper连接数据库测试。
、实验学时数
2学时
三、实验步骤和内容:
先安装好Oracle10g数据库环境(不安装默认数据库)。
1.创建好相关的目录
假设oracle安装在D盘,打开命令行,运行->cmd->
mdD:
\oracle\product\10.2.0\admin\mydb\pfile
mdD:
\oracle\product\10.2.0\admin\mydb\bdump
mdD:
\oracle\product\10.2.0\admin\mydb\cdump
mdD:
\oracle\product\10.2.0\admin\mydb\udump
mdD:
\oracle\product\10.2.0\oradata\mydb
mdD:
\oracle\product\10.2.0\flash_recovery_area\mydb
2.创建数据库实例
(1)设置环境变量SID(注:
以后每打开一次CMD都要运行此句)
setORACLE_SID=mydb
2)创建口令文件
orapwdfile=D:
\oracle\product\10.2.0\oradata\mydb\Password=bhbhentries=5
3)使用oradim命令创建数据库实例mydb
oradim-new-sidmydb-startmodemanual-pfile"D:
\oracle\product\.\admin\mydb\pfile\"
3.用sys账户以sysdba的身份登录
输入sqlplussys/bhbhassysdba
4.创建实例初始化参数文件,并将其放到
路径下。
#Copyright(c)1991,2001,2002byOracleCorporation
job_queue_processes=10
#JobQueues
#SharedServer
dispatchers="(PROTOCOL=TCP)(SERVICE=mydbXDB)"
#Miscellaneous
compatible=10.2.0.
#SecurityandAuditing
remote_login_passwordfile=EXCLUSIVE
#Sort,HashJoins,BitmapIndexes
pga_aggregate_target=
sort_area_size=65536
#DatabaseIdentification
db_domain=""
db_name=mydb
#FileConfiguration
control_files=("D:
\oracle\product\10.2.0\oradata\mydb\",
"D:
\oracle\product\","D:
\oracle\product\")
db_recovery_file_dest=D:
\oracle\product\10.2.0\flash_recovery_area
db_recovery_file_dest_size=48
#Pools
java_pool_size=
large_pool_size=8388608
shared_pool_size=
#CursorsandLibraryCache
open_cursors=300
#SystemManagedUndoandRollbackSegments
undo_management=AUTO
undo_tablespace=UNDOTBS1
#DiagnosticsandStatistics
background_dump_dest=D:
\oracle\product\10.2.0\admin\mydb\bdump
core_dump_dest=D:
\oracle\product\10.2.0\admin\mydb\cdump
user_dump_dest=D:
\oracle\product\10.2.0\admin\mydb\udump
#ProcessesandSessions
processes=150
#CacheandI/O
db_block_size=8192
db_cache_size=
db_file_multiblock_read_count=16
5.运行命令实例初始化
STARTUPNOMOUNTpfile="D:
\oracle\product\10.2.0\admin\mydb\pfile\";
6.运行创建数据库SQL命令
CREATEDATABASEmydb
MAXINSTANCES1
MAXLOGHISTORY1
MAXLOGFILES5
MAXLOGMEMBERS5
MAXDATAFILES100
DATAFILE'D:
\oracle\product\10.2.0\oradata\mydb\'
SIZE500MAUTOEXTENDONNEXT100M
MAXSIZEUNLIMITED
SYSAUXDATAFILE
'D:
\oracle\product\10.2.0\oradata\mydb\'size20M
UNDOTABLESPACEUNDOTBS1DATAFILE
'D:
\oracle\product\10.2.0\oradata\mydb\'
SIZE150MREUSEAUTOEXTENDONNEXT50M
MAXSIZEUNLIMITED
DEFAULTTEMPORARYTABLESPACETEMP1TEMPFILE
'D:
\oracle\product\10.2.0\oradata\mydb\'SIZE100MREUSE
CHARACTERSETZHS16GBK
NATIONALCHARACTERSETAL16UTF16
LOGFILE'D:
\oracle\product\10.2.0\oradata\mydb\'SIZE
50M,
'D:
\oracle\product\10.2.0\oradata\mydb\'SIZE50M,
'D:
\oracle\product\10.2.0\oradata\mydb\'SIZE50M;
7.创建用户表空间USERS
CREATETABLESPACEUSERS
DATAFILE'D:
\oracle\product\10.2.0\oradata\mydb\'
SIZE128MREUSE
AUTOEXTENDONNEXT1280K
MAXSIZEUNLIMITED;
8.创建数据字典(需要几分钟,报错不要紧)
@D:
\oracle\product\10.2.0\db_1\RDBMS\ADMIN\;
9.创建内部包(需要几分钟,报错不要紧)
@D:
\oracle\product\10.2.0\db_1\RDBMS\ADMIN\;
10.创建自启动文件,以便以后不用每次打开数据库实例都要运行一次第5
止
步。
createspfileFROMpfile='D:
\oracle\product\10.2.0\admin\mydb\pfile\';
11.重启数据库,即关闭再打开。
shutdown;
connectsys/bhbhassysdba;
startup;
12.授权用户system为dba,置密码为bhbh
grantdbatosystemidentifiedbybhbh;
13.使用system用户登录
connsystem/bhbh;
14.为system用户创建一张KC表
CREATETABLEKC
KCHCHAR(3)NOTNULL,
KCMCHAR(16)NOTNULL,
KKXQNUMBER
(1)NOTNULL,
XSNUMBER
(2)NOTNULL,
XFNUMBER
(2),
CONSTRAINTCH_KKXQCHECK(kkxqbetween1and8),
CONSTRAINT"PK_KCH"PRIMARYKEY("KCH"))
TABLESPACEUSERS;
15.给KC表插入一条数据,并提交。
INSERTINTOKCVALUES('O数据库',7,68,4);
commit;
16.测试查询
Select*fromkc;
17.使用NetConfigurationAssistant添加监听器,并重启监听器(运行cmd->netca也一样)。
18.创建Em资料档案库(这一步可以省略,只为创建OEM,我们以后学习
用不到)。
cmd->emca-configdbcontroldb-reposcreate
19.打开SQLDeveloper,并新建数据库连接并测试是否成功。
20.若之前手工安装数据库出现差错,可使用以下命令删除数据库实例:
cmd->oradim-delete-sidmydb
然后删除第1步所建目录即可。
四、上机作业
根据实验步骤完成逐个实验目标中的任务。
五、心得体会:
通过这次的实验,明白了手动建数据库,建表空间等。
还知道了运行数据库的命令,授权命令插表等等。
这次学习让我对数据库的了解和运用又新的体会。
实验三:
数据库修改
、实验目标:
学习简化实验二里的实验步骤,学习修改数据库某些属性,完成数据库作业
1:
手工快速创建数据库实例XSCJ和数据库XSCJ
二、实验学时数
2学时
三、实验步骤和内容:
1.安装好ORACLE10g(不需要安装数据库)。
2.快速安装数据库实例mydb和数据库mydb需要3个文件:
,,
1)双击运行文件;
2)将放到正确的路径下(参考实验二)3)在sqlplus环境下运行
3.了解startupnomount,startupmount和startup三种状态的使用情况的区别,即打开实例不装载数据库、打开实例装载数据库但不打开数据库和打开实例装载数据库同时打开数据库。
(1)运行P45页例子2-7修改数据库(提示:
startup;)
ALTERDATABASEmydb
DATAFILE'D:
\oracle\product\10.2.0\oradata\mydb\'RESIZE200M;
(2)运行P45页例子2-9删除数据库(提示:
startupmount;)
取消数据库的受限制状态:
altersystemenablerestrictedsession;
删除数据库:
DROPDATABASE;
3)重建数据库
sys重新登录,运行。
4.删除数据库实例mydb和数据库mydb。
使用命令oradim-delete-sidmydb以及删除相关文件夹。
四、上机作业
适当地修改建库所用到的3个文件里的参数,手工安装数据库实例xscj和数据库xscj(快速安装),用户表空间myts。
五、心得体会
这次学习,让我明白了怎样修改数据库某些属性,手工快速创建数据库实例
XSCJ和数据库XSCJDROPDATABAS命令可以删除数据库…
实验四:
表的创建、修改和删除
以及表数据的插入、修改和删除
、实验目标:
学习表的创建、插入、修改和删除以及表数据的插入、修改和删除。
、实验学时数
4学时
三、实验步骤和内容:
1.手工创建好数据库XSCJ
2.为用户system创建3个表XSBKCB和CJB(P66-67例子,createtable用法,自己照书完成)。
CREATETABLEXSB
(XHchar(6)NOTNULLPRIMARYKEY,
XMchar(8)NOTNULL,
XBchar
(2)DEFAULT'1'NOTNULL,
CSSJdateNOTNULL,
ZYchar(12)NULL,
ZXFnumber
(2)NULL,
BZvarchar2(200)NULL
)TABLESPACEmyts;
CREATETABLEKCB
(KCHchar(3)NOTNULLPRIMARYKEY,
KCMchar(16)NOTNULL,
KKXQnumber
(1)NULL,
XSnumber
(2)NULL,
XFnumber
(1)NOTNULL
)TABLESPACEmyts;
CREATETABLECJB
(XHCHAR(6)NOTNULL,
KCHCHAR(3)NOTNULL,
CJNUMBER
(2),
XFNUMBER
(1),
PRIMARYKEY(XH,KCH)
)TABLESPACEmyts;
3.学习修改表结构(P70例子
(1)-(3)altertable用法)。
(1)在表XSB中增加两列:
JXJ(奖学金等级)、DJSM(奖学金等级说明)。
ALTERTABLEXSB
ADD(JXJnumber
(1),
DJSMvarchar2(40)DEFAUL奖金1000元');
(2)在表XSB中修改名为DJSM的列的默认值。
ALTERTABLEXSB
MODIFY(DJSMDEFAUl奖金800元');
(3)在表XSB中删除名为JXJ和DJSM的列。
AlTERTABlEXSB
DROPCOlUMNJXJ;
AlTERTABlEXSB
DROPCOlUMNDJSM;
修改好可用命令:
describetable_name;查看。
4.删除表(P71droptable用法)。
DROPTABlEtable_name;
5.向XSCJ数据库的表XSB中插入一行(P75例子insert用法))
INSERTINTOXSB(XH,XM,XB,CSSJ,ZY,ZXF)
VALUES('101101',王林','男',TO_DATEC','YYYYMMDD'计算机',50);
提交数据:
Commit;
插入后可用命令:
select*fromtable_name;查看。
6.学习删除表数据(P78DELETE口TRUNCATE勺用法)。
将XSCJ数据库的XSB表中总学分小于50的行删除:
DELETEFROMXSBWHEREZXF<50;
使用TRUNCATETABLS句删除表中的所有数据,且不能恢复。
TRUNCATETABLEtable_name;
插入后可用命令:
select*fromtable_name;查看。
7.为3个表XSBKCB和CJB插入数据(使用)
8.学习修改表数据(P78-79例子UPDATE用法))
UPDATEXSB
SETBZ三好'
WHEREXH='101110';
UPDATEXSB
SETZXF=ZXF+10;
UPDATEXSB
SETZY通信工程',
BZ二转专业学习',
XH='101241'
WHEREXM二罗林琳';
UPDATEXS
SETZXF=ZXF+4,
BZ=提'前修完《数据结构》,并获得学分'
WHEREXM^明';
插入后可用命令:
select*fromtable_namewhere(条件);查看。
9.将数据恢复到刚插入时的状态(即把修改过的表清空再插入)
10.了解一下同义词,知道同义词的作用(不作重点)。
四、上机作业
手工安装数据库实例xscj和数据库xscj(快速安装),用户表空间myts后,为用户system创建3个表XSBKCB和CJB并插入所有数据。
五、心得体会
这次学习的表创建,删除和修改的学习使我对数据库的表的认识更进一步。
通过这次的学习,学会对表的创建、修改、删除。
创建表就是按格式写些代码;修改(UPDATE表名+需修改的内容)和删除(DROPTABLE表名)就是使用指定的指令对表进行操作,使之完成想要的目的。
实验五:
数据库查询练习
、实验目标:
学习数据库数据查询语句的基本方法以及视图的使用方法。
二、实验学时数
6学时
三、实验步骤和内容:
课本例子:
,,,,
(2),,
(2)
,,,
(1),(3),,,
一)学习和掌握课本查询语句的基本语法和使用方法,完成下面练习(@为选做)。
Select*fromxsb;
Selectkchfromxsbwherexmlike'王%';
*3、
查询出生于85和86年的女同学的学号和姓名。
Selectxh,xmfromxsbwherecssjbetweento_date('','yyyymmdd')andto_date('','yyyymmdd')andxb='女';
*4、查询学号为101104所选修的全部课程成绩。
Selectcjfromcjbwherexh='101104';
*5、检索每个学生的姓名和年龄。
Selectxm,to_char(sysdate,'yyyy')-to_char(cssj,'yyyy')as年龄fromxsb;
*6、在XS表中检索学生的姓名和出生年份,输出的列名为姓名和生年
Selectxm,to_char(cssj,'yyyy')as出生时间fromxsb;
*7、在XS_KC表中,求选修课程206的学生的学号和得分,并将结果按分数降序排序。
Selectxh,cjfromcjbwherekch=
'206'orderbycjdesc;
*8、把课程名为软件工程的成绩从学生选课数据表XSKC中删除。
Deletefromkcbwherekcm=(selectkchfromkcbwherekcm='软件工程’);
*9、把女同学的成绩提高10%。
Updatecjbsetcj=cj*wherexhin(selectxhfromxsbwherexb='女')andcj<=90;
*10、如果学号为061106的学生的成绩少于90,则加上10分。
Updatecjbsetcj=cj+10wherexh=
'061106'andcj<90;
*11、查询学号为061104的学生选修的课程号和课程名。
Selectxh,xmfromxsbwherexhin(selectxhfromcjbwherekcb=
'061104';
*12、检索学习课程号为206的学生学号与姓名。
Selectxm,xhfromxsbwherekch=
'206';
*13、检索‘李明'所选修的全部课程名称。
Selectkcmfromkchwherexm=(selectxmfromxsbwherexm='李明’);
*14、查找每个同学的学号及选修课程的平均成绩情况。
Selectxh,avgas课程号平均成绩fromcjb;
*15、求选修了各课程的学生的人数。
Selectcount(distinctxh)as选修课程总人数fromcjb;
Selectkchas课程号,count(xh)as选修人数groupbykch;
*16、查询平均成绩都在80分以上的学生学号及平均成绩。
Selectxh,cjfromcjbgroupbyxhhavingavg(cj)>80;
Selectxh,cjfromcjbgroupbyxhhavingavg(cj)>80orderbyavg(cj);
Selectxh,cjfromcjbgroupbyxhhavingavg(cj)>80orderbyavg(cj)desc;
*17、查询至少有6人选修的课程号。
Selectkchas课程号fromcjbgroupbyhavingcount(*)>=6;
'101'andkch=‘102';
*18、检索选修课程号为101或102的学生学号,姓名和所在系
S