21天学通Oracle课后答案第三版.docx
- 文档编号:11639504
- 上传时间:2023-03-29
- 格式:DOCX
- 页数:50
- 大小:343.74KB
21天学通Oracle课后答案第三版.docx
《21天学通Oracle课后答案第三版.docx》由会员分享,可在线阅读,更多相关《21天学通Oracle课后答案第三版.docx(50页珍藏版)》请在冰豆网上搜索。
21天学通Oracle课后答案第三版
第1章Oracle安装配置
1.Oracle服务端安装好之后,在命令提示符下,利用echo%Path%命令查看此时的系统变量Path。
在Windows系统中,单击【开始】|【运行】,并键入“cmd〞,如如下图所示:
单击【确定】按钮,将进入Windows命令提示符,如如下图所示:
键入echo%path%,并按下回车键,将显示此时变量path的值,如如下图所示:
2.利用java–version命令,查看此时java环境的版本,以确认是否为Oracle安装时自带的Java文件。
在Windows的【mand】窗口中执行java–version命令,将看到本机Java环境的版本,如如下图所示:
3.Oracle数据库服务器安装之后,在硬盘上搜寻名为oradata的文件夹。
其中包含了所有数据库的物理文件,查看已有数据库的子文件夹与文件。
一个数据库的典型文件包括:
后缀为CTL的控制文件;后缀为LOG的重做日志;后缀为DBF的数据文件。
第2章Oracle常用工具
1.有时无法连接数据库,是由于屡次安装了服务端/客户端,而导致客户端软件寻找TNS配置文件时,混淆了当前有效的路径。
此时,可以利用将DNS描述直接作为参数传递给客户端软件的方式来登录数据库,从而不再使用TNS配置文件。
尝试利用数据库ORCL的TNS描述直接登录数据库。
利用sqlplus+TNS配置登录数据库的命令如下所示:
sqlplussys/abc123(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=)(PORT=1521)))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=orcl)))assysdba
登录成功的界面如下所示:
2.EZConnect是EasyConnect的简称。
利用EZConnect可以在客户端以IP+SID的方式登录数据。
利用NetManager配置EZConnect的连接方式,并利用客户端软件+EZConnect的方式登录数据库ORCL。
首先保证Oracle数据库服务器支持EZConnect连接方式,如如下图所示:
然后,在【mand】窗口中,利用sqlplus登录数据库:
登录成功的界面如下所示:
当然,也可以利用PL/SQLDeveloper进展登录:
3.客户端连接Oracle数据库连接时,默认端口为1521。
创建一个新的监听程序,其端口为1522。
然后将ORCL注册于该监听程序。
1〕在NetManager中创建名为LISTENER_1522。
为【监听位置】填写主机IP和端口号。
注意其端口号为1522
2〕选择监听程序的【数据库服务】,并为其输入ORCL。
3〕利用【文件】|【保持网络配置】,保存监听程序LISTENER_1522的信息。
4〕在Windowsmand窗口中,启动监听程序LISTENER_1522。
C:
\>lsnrctlstartlistener_1522
LSNRCTLfor32-bitWindows:
Version.2.0-Productionon31-7月-201119:
37:
17
Copyright(c)1991,2004,Oracle.Allrightsreserved.
Startingtnslsnr:
pleasewait...
TNSLSNRfor32-bitWindows:
Version.2.0-Production
Listeningon:
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.16.5)(PORT=1522)))
Connectingto(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.16.5)(PORT=1522)))
STATUSoftheLISTENER
------------------------
Aliaslistener_1522
VersionTNSLSNRfor32-bitWindows:
Version.2.0-Production
StartDate31-7月-201119:
37:
17
Uptime0days0hr.0min.0sec
TraceLeveloff
SecurityON:
LocalOSAuthentication
SNMPOFF
ListeningEndpointsSummary...
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.16.5)(PORT=1522)))
ServicesSummary...
Service"ORCL"has1instance(s).
Instance"ORCL",statusUNKNOWN,has1handler(s)forthisservice...
Themandpletedsuccessfully
这样,即使没有其他监听程序的存在,或者1521端口冲突。
Oracle也会自动通过监听程序LISTENER_1522来连接数据库ORCL。
第3章SQLPlus和PL/SQL
1.利用sqlplus登录数据库,并查看数据库版本。
利用SQLPlus登录数据库:
C:
\>sqlplus/assysdba
SQL*Plus:
Release.2.0-Productionon星期日7月1018:
43:
502011
Copyright(c)1982,2004,Oracle.Allrightsreserved.
Connectedto:
OracleDatabase10gEnterpriseEditionRelease.2.0-Production
WiththePartitioning,OLAPandDataMiningoptions
SQL>
在控制台上打印出的信息,可以清楚看到Oracle数据库的版本为。
2.在对数据库进展重要操作时,首先应该确认数据库身份,以免在其他数据库上进展操作。
尝试利用SQLPlus显示数据库实例名称。
1〕利用SQLPlus登录数据库:
C:
\>sqlplus/assysdba
SQL*Plus:
Release.2.0-Productionon星期日7月1018:
43:
502011
Copyright(c)1982,2004,Oracle.Allrightsreserved.
Connectedto:
OracleDatabase10gEnterpriseEditionRelease.2.0-Production
WiththePartitioning,OLAPandDataMiningoptions
SQL>
2〕键入showparameterinstance_name来查看实例名称
SQL>showparameterinstance_name
NAMETYPEVALUE
-----------------------------------------------------------------------------
instance_namestringorcl
3.试着利用SQLPlus来创建一个新表test(idnumber,namevarchar2(20))。
可以通过如下步骤利用SQLPlus来创建一个新表:
〔1〕利用SQLPlus登录数据库ORCL。
在Windows的【开始】|【运行】的【打开】文本框中输入sqlplusscott/abc123orcl来登录数据库ORCL。
〔2〕在SQLPlus命令行下输入如下命令来创建新表test:
createtabletest(idnumber,namevarchar2(20));
〔3〕在SQLPlus会出现表创建成功的提示,如下列图。
此时,证明表创建成功。
第4章Oracle数据库
1.在数据库中创建一个表lob_source(idnumber,descriptionclob)。
将表lob_test的数据导入另外一个数据表lob_dest(idnumber,descriptionclob)。
1〕创建表lob_source
SQL>createtablelob_source(idnumber,descriptionclob);
Tablecreated.
2)向表lob_source中插入测试数据
SQL>insertintolob_sourcevalues(1,'aclobtextfromsource');
1rowcreated.
3)创建测试表lob_dest
SQL>createtablelob_dest(idnumber,descriptionclob);
Tablecreated.
4)向测试表lob_dest中插入测试数据,但是不包含clob类型的description列
SQL>insertintolob_dest(id)values
(1);
1rowcreated.
5〕利用表lob_source中的description信息,更新表lob_dest中的description信息。
SQL>updatelob_destsetdescription=(selectdescriptionfromlob_sourcesourcewheresource.id=lob_dest.id);
1rowupdated.
SQL>select*fromlob_dest;
IDDESCRIPTION
--------------------------------------------------
1aclobtextfromsource
该实例实际说明了针对lob类型的数据的操作方式。
由于lob类型的数据的特殊性,因此在实现数据库迁移时,如果遇到棘手的lob类型处理,可以考虑利用本例所演示的方法。
2.利用exp/imp方式,将数据库orcl中users表的容,迁移到数据库test中。
1)在数据库orcl中,创建测试表users
SQL>createtableusers(user_idnumber,user_namevarchar(20));
Tablecreated.
SQL>insertintousersvalues(1,'allen');
1rowcreated.
SQL>insertintousersvalues(2,'mike');
1rowcreated.
SQL>mit;
mitplete.
2〕导出表users到
C:
\>expsystem/abc123//192.168.16.5/orcltables=(users)file='d:
/users.bak'
Export:
Release.2.0-Productionon星期三7月1300:
06:
222011
Copyright(c)1982,2004,Oracle.Allrightsreserved.
Connectedto:
OracleDatabase10gEnterpriseEditionRelease.2.0-Production
WiththePartitioning,OLAPandDataMiningoptions
ExportdoneinZHS16GBKcharactersetandAL16UTF16NCHARcharacterset
AbouttoexportspecifiedtablesviaConventionalPath...
..exportingtableUSERS2rowsexported
Exportterminatedsuccessfullywithoutwarnings.
3〕将的容导入数据库test
C:
\>impsystem/abc123//192.168.16.5/testtables=(users)file='d:
/users.bak'
Import:
Release.2.0-Productionon星期三7月1300:
10:
092011
Copyright(c)1982,2004,Oracle.Allrightsreserved.
Connectedto:
OracleDatabase10gEnterpriseEditionRelease.2.0-Production
WiththePartitioning,OLAPandDataMiningoptions
ExportfilecreatedbyEXPORT:
Vviaconventionalpath
importdoneinZHS16GBKcharactersetandAL16UTF16NCHARcharacterset
.importingSYSTEM'sobjectsintoSYSTEM
..importingtable"USERS"2rowsimported
Importterminatedsuccessfullywithoutwarnings.
3.如果数据库处于归档模式,那么,随着时间的累积,归档日志将会占用很大空间。
一旦达到默认大小20G,那么将导致数据库挂起,在告警日志中一般会有如下提示:
ORA-00257:
archivererror.Connectinternalonly,untilfreed。
利用修改参数db_recovery_file_dest_size的方式,快速解决数据库无法归档的问题。
1〕查看默认空间大小
SQL>showparameterdb_recovery_file_dest_size
NAMETYPEVALUE
---------------------------------------------------
db_recovery_file_dest_sizebiginteger2G
2〕修改其大小
SQL>altersystemsetdb_recovery_file_dest_size=3Gscope=both;
Systemaltered.
这一用法,适合于快速处理现场由于归档日志过大导致的数据库挂起。
第5章Oracle数据表对象
1.创建一个表空间testsize,其数据文件大小为2M,并设置自动增长尺寸为1M。
在表空间中建立一个数据表,并向其中插入大量数据,观察表空间文件的变化。
1〕创建一个大小为2M,自动增长尺寸为1M的表空间
SQL>createtablespacetestsizedatafile'e:
\database\oracle\testsize_data.dbf'size2M
2autoextendonnext1M
3/
Tablespacecreated
2〕创建一个数据表test_tablespace_size(test_datavarchar2(100))
SQL>createtabletest_tablespace_size(test_datavarchar2(100))tablespacetestsize;
Tablecreated
3〕利用如下SQL语句向表test_tablespace_size中插入数据
SQL>begin
2foriin1..100000loop
3insertintotest_tablespace_sizevalues('0123456789');
4endloop;
5mit;
6end;
7/
PL/SQLproceduresuccessfullypleted
4〕此时,表空间文件将增长为3M。
2.删除表空间testsize,同时删除其物理文件。
删除表空间应该使用droptablespace命令,同时删除物理文件,应使用includingcontentsanddatafiles。
SQL>droptablespacetestsizeincludingcontentsanddatafiles;
Tablespacedropped.
3.在数据库中创建一个表test_bak,并向其中插入10条记录。
利用exp/imp命令来实现该数据表的备份/恢复。
1〕在数据库中创建表test_bak(idnumber)。
SQL>createtabletest_bak(idnumber);
Tablecreated
2〕向其中插入10条数据。
SQL>begin
2foriin1..10loop
3insertintotest_bakvalues(i);
4endloop;
5end;
6/
PL/SQLproceduresuccessfullypleted
SQL>mit;
mitplete
3〕利用exp命令备份该表
C:
\>expsystem/abc123//192.168.16.5/orcltables=(test_bak)file='d:
/test_bak.bak'
Export:
Release.2.0-Productionon星期六7月1614:
51:
542011
Copyright(c)1982,2004,Oracle.Allrightsreserved.
Connectedto:
OracleDatabase10gEnterpriseEditionRelease.2.0-Production
WiththePartitioning,OLAPandDataMiningoptions
ExportdoneinZHS16GBKcharactersetandAL16UTF16NCHARcharacterset
AbouttoexportspecifiedtablesviaConventionalPath...
..exportingtableTEST_BAK10rowsexported
Exportterminatedsuccessfullywithoutwarnings..
4〕在数据库中删除表test_bak。
SQL>droptabletest_bak;
Tabledropped
5〕将表test_bak重新导入数据库
C:
\>impsystem/abc123//192.168.16.5/orcltables=(test_bak)file='d:
/test_bak.bak'
Import:
Release.2.0-Productionon星期六7月1614:
54:
242011
Copyright(c)1982,2004,Oracle.Allrightsreserved.
Connectedto:
OracleDatabase10gEnterpriseEditionRelease.2.0-Production
WiththePartitioning,OLAPandDataMiningoptions
ExportfilecreatedbyEXPORT:
Vviaconventionalpath
importdoneinZHS16GBKcharactersetandAL16UTF16NCHARcharacterset
.importingSYSTEM'sobjectsintoSYSTEM
..importingtable"TEST_BAK"10rowsimported
Importterminatedsuccessfullywithoutwarnings.
6〕重新查询表test_bak
SQL>select*fromtest_bak;
ID
----------
1
2
3
4
5
6
7
8
9
10
10rowsselected
第6章约束
1.查看表customers的主键状况,如果有,如此重建其主键,如果没有,选择其中一列创建主键。
1〕利用如下SQL语句查看表customers的主键状况:
SQL>selecttable_name,constraint_name,constraint_type,statusfromuser_constraints
2wheretable_name='CUSTOMERS'andconstraint_type='P';
TABLE_NAMECONSTRAINT_NAMECONSTRAINT_TYPESTATUS
------------------------------------------------------------------------------------------------------
CUSTOMERSSYS_C005015PENABLED
2〕此时,在已有主键的情况下,首先删除主键SYS_C005015。
SQL>altertablecustomersdropprimarykey;
altertablecustomersdropprimarykey
ORA-02273:
thisunique/primarykeyisreferencedbysomeforeignkeys
3〕表customers中的主键与其他表的外键关联,可以利用cascade选项来删除关联约束。
SQL>altertablecustomersdropprimarykeycascade;
Tablealtered
4〕重新创建基于列customer_id的主键。
SQL>altertablecustomersaddprimarykey(customer_id);
Tablealtered
2.在数据库中,创建表country(country_id,country_name)、city(city_id,country_id,city_name),并建立到的外键关联。
1〕创建表countr
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 21 天学通 Oracle 课后 答案 第三