第6章 实训题答案
用SQL*Plus或iSQL*Plus工具完成以下操作:
(1)为USERS表空间添加一个数据文件,文件名为USERS03.DBF,大小为50MB。
ALTER TABLESPACE USER
ADD DATAFILE ‘D:\\ORACLE\\ORADATA\\ORCL\\USER03.DBF’ SIZE 50M;
(2)为EXAMPLE表空间添加一个数据文件,文件名为example02.dbf,大小为20MB。
ALTER TABLESPACE EXAMPLE
ADD DATAFILE ‘D:\\ORACLE\\ORADATA\\ORCL\\example02.dbf’ SIZE 20M;
(3)修改USERS 表空间中的USERS03.DBF为自动扩展方式,每次扩展5 MB,最大为100 MB。
ALTER DATABASE DATAFILE ‘D:\\ORACLE\\ORADATA\\ORCL\\ USER03.DBF’ AUTOEXTEND ON
NEXT 5M MAXSIZE 100M;
(4)将EXAMPLE表空间中的example02.dbf文件的大小改为40 MB。
ALTER DATABASE DATAFILE ‘D:\\ORACLE\\ORADATA\\ORCL\\example02.dbf’ RESIZE 40M;
(5) 将表空间USERS中的数据文件USERS03.DBF 更名为userdata04.dbf,将表空间EXAMPLE 中的数据文件example03.dbf更名为example04.dbf。
SHUTDOWN IMMEDIATE;
在操作系统中重命名USER03.DBF、example03.dbf分别为userdata04.dbf、example04.dbf STARTUP MOUNT;
ALTER DATABASE RENAME FILE ‘D:\\ORACLE\\ORADATA\\ORCL\\ USER03.DBF.dbf’,
‘D:\\ORACLE\\ORADATA\\ORCL\\example03.dbf’ TO
‘D:\\ORACLE\\ORADATA\\ORCL\%userdata04.dbf’, ‘D:\\ORACLE\\ORADATA\\ORCL\\example04.dbf’;
ALTER DATABASE OPEN;
(6)将数据库的控制文件以二进制文件的形式备份。
ALTER DATABASE BACKUP CONTROLFILE TO ‘D:\\ORACLE\\CONTROL.BKP’; (7)为数据库添加一个重做日志文件组,组内包含两个成员文件,分别为redo4a.log和redo4b.log,大小分别为5MB。 ALTER DATABASE ADD LOGFILE GROUP 4 (‘D:\\ORACLE\\ORADATA\\ORCL\\redo04a.log’,’D:\\ORACLE\\ORADATA\\ORCL\\redo04b.log’) SIZE 5M; (8)为新建的重做日志文件组添加一个成员文件,名称为redo4c.log。
ALTER DATABASE ADD LOGFILE MEMBER ‘D:\\ORACLE\\ORADATA\\ORCL\\redo04c.log’ TO GROUP 4; (9)将数据库设置为归档模式,并采用自动归档方式。
SHUTDOWN IMMEDIATE STARTUP MOUNT
ALTER DATABASE ARCHIVELOG;
ALTER DATABASE OPEN;
ALTER SYSTEM ARCHIVE LOG START;
(10)设置数据库归档路径为D:\\ORACLE\\BACKUP。
ALTER SYSTEM SET LOG_ARCHIVE_DEST=’D:\\ORACLE\\BACKUP’;
第7章 实训题答案
用SQL*Plus或iSQL*Plus工具完成以下操作:
(1)使用SQL命令创建一个本地管理方式下的自动分区管理的表空间USERTBS1,其对应的数据文件大小为20MB。
create tablespace USERTBS1
datafile 'd:\\oracle\\oradata\\orcl\%usertbs1.dbf' size 20M
extent management local autoallocate;
(2)使用SQL命令创建一个本地管理方式下的表空间USERTBS2,要求每个分区大小为512KB。
create tablespace USERTBS2
datafile 'd:\\oracle\\oradata\\orcl\%usertbs2.dbf' size 20M
extent management local uniform size 512K;
(3)修改USERTBS1表空间的大小,将该表空间的数据文件修改为自动扩展方式,最大值为100MB。
alter database datafile 'd:\\oracle\\oradata\\orcl\%usertbs1.dbf' autoextend on next 5M maxsize 100M;
(4)为USERTBS2表空间添加一个数据文件,以改变该表空间的大小。
alter tablespace USERTBS2
add datafile 'd:\\oracle\\oradata\\orcl\%usertbs2a.dbf' size 50M;
(5)使用SQL命令创建一个本地管理方式下的临时表空间TEMPTBS,并将该表空间作为当前数据库实例的默认临时表空间。
create temporary tablespace TEMPTBS
tempfile 'd:\\oracle\\oradata\\orcl\\temptbs.dbf' size 20M;
alter database default tablespace TEMPTBS;
(6)使用SQL命令对USERTBS1表空间进行联机和脱机状态转换。 alter tablespace USERTBS1 offline;
alter tablespace USERTBS1 online;
(7)创建一个回滚表空间UNDOTBS,并作为数据库的撤销表空间。
create undo tablespace UNDOTBS
datafile 'd:\\oracle\\oradata\\orcl\%undotbs.dbf' size 20M;
alter system set UNDO_MANAGEMENT=AUTO,UNDO_TABLESPACE=UNDOTBS
scope=both;
(8)删除表空间USERTBS2,同时删除该表空间的内容以及对应的操作系统文件。
drop tablespace USERTBS2 including contents and datafiles;
(9)查询当前数据库中所有的表空间及其对应的数据文件信息。
select tablespace_name,file_name from dba_data_files;
第10章 实训题答案
用SQL*Plus或iSQL*Plus工具完成以下操作:
(1)为了修改数据文件的名称,请启动数据库到合适的模式。
STARTUP MOUNT
(2)以受限状态打开数据库。启动数据库后,改变数据库状态为非受限状态。
STARTUP RETRICT
ALTER SYSTEM DISABLE RESTRICTED SESSION
(3)将数据库转换为挂起状态。再将数据库由挂起状态转换为非挂起状态。
ALTER SYSTEM SUSPEND; ALTER SYSTEM RESUME;
(4)将数据库转换为只读状态。再将数据库由只读状态转换为读/写状态。
SHUTDOWN IMMEDIATE; STARTUP MOUNT;
ALTER DATABASE OPEN READ ONLY; SHUTDOWN IMMEDIATE; STARTUP MOUNT;
ALTER DATABASE OPEN READ WRITE;
(5)以4种不同方法关闭数据库。
SHUTDOWN ;
SHUTDOWN IMMEDIATE; SHUTDOWN TRANACTION; SHUTDOWN ABORT;
(6)以强制方式启动数据库。
STARTUP FORCE
第11章 实训题答案
用SQL*Plus或iSQL*Plus工具完成以下操作:
(1)按照给定的表结构利用SQL语句创建class、student两个表。
Create table class(
CNO number(2) primary key, CNAME varchar2(20), NUM number(3) )
Create table student(
SNO number(4) primary key, SNAME varchar2(10) unique, SAGE number, SEX char(2), CNO number(2) )
(2)为student表添加一个可以延迟的外键约束,其CNO列参照class表的CNO列。 Alter table student add constraint fk_cno foreign key (cno) references class(cno) deferrable;
(3)为student表的SAGE列添加一个检查约束,保证该列取值在0~100之间。
Alter table student add constraint ck_sage check (sage>0 and sage<=100);
(4)为student表的SEX列添加一个检查约束,保证该列取值为“M”或“F”,且默认值为“M”。 alter table student add constraint ck_stu check(sex='M' or sex='F') modify sex default 'M';
(5)在class表的CNAME列上创建一个唯一性索引。
Create unique index ind_cname on class(cname);
(14)为SCOTT模式下的emp表创建一个视图,包含员工号、员工名和该员工领导的员工号、员工名。
Create view employee_v(empno,ename,mgr_no,mgr_name)
As Select e1.empno,e1.ename,e1.mgr,e2.ename
from scott.emp e1 join scott.emp e2 on e1.mgr=e2.empno;