21天学通Oracle课后答案第三版.docx

上传人:b****5 文档编号:11639504 上传时间:2023-03-29 格式:DOCX 页数:50 大小:343.74KB
下载 相关 举报
21天学通Oracle课后答案第三版.docx_第1页
第1页 / 共50页
21天学通Oracle课后答案第三版.docx_第2页
第2页 / 共50页
21天学通Oracle课后答案第三版.docx_第3页
第3页 / 共50页
21天学通Oracle课后答案第三版.docx_第4页
第4页 / 共50页
21天学通Oracle课后答案第三版.docx_第5页
第5页 / 共50页
点击查看更多>>
下载资源
资源描述

21天学通Oracle课后答案第三版.docx

《21天学通Oracle课后答案第三版.docx》由会员分享,可在线阅读,更多相关《21天学通Oracle课后答案第三版.docx(50页珍藏版)》请在冰豆网上搜索。

21天学通Oracle课后答案第三版.docx

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

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

当前位置:首页 > 求职职场 > 简历

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

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