Oracle数据库管理习题及答案.docx
《Oracle数据库管理习题及答案.docx》由会员分享,可在线阅读,更多相关《Oracle数据库管理习题及答案.docx(67页珍藏版)》请在冰点文库上搜索。
Oracle数据库管理习题及答案
1.6习题
一.填空题
1、关系模型提供了3类完整性规则,分别是_______、_______、_______。
参考答案:
实体完整性规则、参照完整性规则、用户定义的完整性规则
2、RDBMS由两部分组成,即_______、_______两部分。
答案:
数据库系统内核、数据字典
3、关系数据库模型支持三种类型的表关联关系:
_______、_______、_______。
答案:
一对一、一对多以及多对多
4、数据模型的种类有很多,例如_______、_______、_______和_______等。
目前理论最成熟、使用最普及的是_______。
答案:
层次模型、网状模型、关系数据模型、面向对象模型。
关系数据模型
二、选择题
1、Oracle11g版本号中字母“g”的含义是()
A.产品类型的“代”(generation)B.网格(gridding)
C.集成(integration)D.无含义
答案:
A
2、设计性能较优的关系模式称为规范化,规范化主要的理论依据是()
A.关系规范化理论B.关系运算理论
C.关系代数理论D.数理逻辑
答案:
A
3、消除了部分函数依赖的1NF的关系模式必定是()
A.1NFB.2NFC.3NFD.4NF
答案:
B
4、当B属于函数依赖于A属性时,属性B与A的联系是()
A.1对多B.多对1C.多对多D.以上都不是
答案:
B
5、根据关系数据库规范化理论,关系数据库中的关系要满足第一范式。
下面“部门”关系中,因哪个属性而使它不满足第一范式?
部门(部门号,部门名,部门成员,部门总经理)
A.部门总经理B.部门成员
C.部门名D.部门号
答案:
B
6、下列不属于Oracle数据库数据类型的是()
A.NUMBERB.FLOATC.CLOBD.BOOLEAN
答案:
D
三、简答题
1、简述数据库与数据库管理系统的区别。
参考答案:
数据库是用来存储信息或数据的机制,是按照数据结构来组织、存储和管理数据的仓库。
可以被定义为是在计算机存储设备上合理存放的,互相关联的数据集合。
数据库管理系统,它是基于某种结构数据模型、以统一的方式管理和维护数据库,并提供访问数据库接口的通用软件。
2、简述数据库规范化的概念及其作用。
参考答案:
数据库规范化,又称数据库或资料库正规化、标准化,是数据库设计中的一系列原理和技术,以减少数据库中数据冗余,增进数据的一致性。
四、应用题
1、设有一教学管理数据库,其属性为:
学号(S#),课程号(C#),成绩(G),任课教师(TN),教师所在的系(D)。
这些数据有下列语义:
–学号和课程号分别与其代表的学生和课程一一对应。
–一个学生所修的每门课程都有一个成绩。
–每门课程只有一位任课教师,但每位教师可以有多门课程。
–教师中没有重名,每个教师只属于一个系。
(1)试根据上述语义确定函数依赖集。
(2)如果用上面所有属性组成一个关系模式,那么该关系模式为何模式?
并举例说明在进行增、删操作时的异常现象。
(3)分解为具有依赖保持和无损连接的3NF。
参考答案:
(1)F={(S#,C#)→G,C#→TN,TN→D}
(2)关系模式为1NF,因为该关系模式的候选码为(S#,C#),则非主属性有G,TN和D。
又∵F中有C#→TN,∴存在非主属性TN对候选码(S#,C#)的部分依赖,即:
若新增设一门课程而暂时还没有学生选修时,则因缺少码S#值而不能进行插入操作。
若某个教师调离学校要删除有关信息时,会将不该删除的课程(C#)信息删除。
(3)∵Fm={(S#,C#)→G,C#→TN,TN→D}
∴ρ={R1,R2,R3}
其中:
–R1=(S#,C#,G)
–R2=(C#,TN)
–R3=(TN,D)
2.7习题
一、填空题
1、常用的Oracle服务主要有如下四种,分别是_______、_______、_______、_______。
参考答案:
OracleDBConsoleorcl、OracleJobScheduler、OracleService、
OracleTNSListener
2、Oracle数据库启动的三个阶段是:
_______、_______、_______。
参考答案:
启动实例、打开控制文件、打开数据库
3、Oracle数据库关闭的四个选项是:
_______、_______、_______、_______。
参考答案:
normal、immediate、transaction、abort
二、选择题
1、系统标识符(SID)是指唯一在网络域中区别于其他数据库的数据库实例名,下面合法的SID是()
A.my2orclB.myoracletestC.my_orclD.my@orcl
参考答案:
A
2、安装OracleDatabase11g可以选择安装类型,下列不属于OracleDatabase11g的安装类型是()
A.企业版B.个人版 C.定制D.免费版
参考答案:
D
三、简答题
1、简述OracleDatabase11g在Windows系统下的安装步骤。
参考答案:
选择安装方法、选择安装类型、指定主目录详细信息、产品特定的先决条件检查、选择配置选项、安装、安装结束。
2、简述Oracle中用户和模式的关系。
参考答案:
用户是用连接数据库和访问数据库对象的。
模式是数据库对象的集合。
模式对象是数据库数据的逻辑结构。
通俗地说,模式是用来创建oracle中各种对象,而用户用来连接数据库并访问模式中对象,在oracle中模式与用户是一一对应关系。
四、上机练习
1、按照书中步骤,正确安装OracleDatabase11g,创建数据库,并且创建用户。
2、从操作系统提示符界面,采用上题创建的用户登录数据库,并创建EMPLOYEES表进行测试。
(表结构如下图)
3、客户端连接Oracle数据库时,默认端口为1521。
创建一个新的监听程序,其端口为1522。
然后将ORCL注册于该监听程序。
3.5习题
一、填空题
1.查看表结构时,所使用的命令是___________,该命令可以简写为___________。
参考答案:
DESCRIBE、DESC
2.使用SQL*Plus语句快速编辑SQL语句时,可以使用的命令有APPEND(可以简写为A)命令、___________(可以简写为C)命令、___________(可以简写为I)、___________(可简写为L)命令,以及RUN(可以简写为R)命令。
参考答案:
CHANGE、INPUT、LIST
3.在SQL*Plus工具中,可以使用SAVE命令将缓冲区内容保存到文件;可以使用___________命令读取并运行文件内容;可以使用___________命令编辑缓冲区内容或文件内容;还可以使用SPOOL命令复制输出结果到文件。
参考答案:
START、EDIT
4.在SQL语句中,如果在某个变量前面使用了&符号,那么就表示该变量是一个临时变量。
定义变量,可以使用___________或ACCEPT命令;删除变量,可以使用UNDEFINE命令。
参考答案:
DEFINE
5.在SQL*Plus中格式化查询结果时,COLUMN命令可以对列格式化显示效果,PAGESIZE命令可以___________,LINESIZE命令可以___________。
参考答案:
设置页的大小、设置行宽度
6.创建简单报表时,使用___________命令和___________命令,分别为报表设置页眉和页脚信息。
参考答案:
Ttitle、Btitle
二、选择题
1.在SQL*Plus中连接数据库时,可以使用CONNECT命令。
下面的4个选项中,哪个命令是正确的?
其中,用户名为scott,密码为tiger,数据库名为orcl。
()
A.CONNECTscott/tiger;
B.CONNECTtiger/scott;
C.CONNscott/tigerassysdba;
D.CONNscott/tiger@orclassysdba;
参考答案:
D
2.执行语句SAVEscott_emp_query.sqlAPPEND,执行结果表示()。
A.如果scottemp_query.sql文件不存在,则出现错误
B.如果scottemp_query.sql文件已经存在,则出现错误
C.将缓冲区中的内容追加到scott_emp_query.sql文件中。
如果该文件不存在,会创建该文件
D.将缓冲区中的內容替换掉scott_emp_query.sql文件的内容。
如果该文件不存在,会创建该文件
参考答案:
C
3.使用SQL*Plus中的___________,可以将文件中的内容检索到缓冲区,并且不执行。
()
A.SAVE命令
B.GET命令
C.START命令
D.SPOOL命令
参考答案:
B
4.下面是有关变量的描述,请问哪些描述是正确的?
()
A.临时变量是指仅在某个SQL语句中有效的变量
B.临时变量是在某个会话期间有效的变量
C.已定义变量是指明确定义,其生命期至显式地删除、重新定义或退出SQL*Plus为止
D.已定义的变量是不能被删除的
参考答案:
B、C
5.如果希望控制列的显式格式,那么可以使用下面的___________命令()
A.SHOW
B.DEFINE
C.SPOOL
D.COLUMN
参考答案:
D
三、简答题
1.使用DESCRIBE命令,查看scott用户的dept表的结构信息。
参考答案:
descscott.dept
2.使用SAVE命令将缓冲区内容写入到e:
\test.sql文件中;然后使用START命令将文件中的內容读入到缓冲区,并且进行执行。
参考答案:
savee:
\test.sql
Starte:
\test.sql
3.执行下列语句,观察输出结果:
DEFINEtemp=5000
SELECTempno,ename,mgr
FROMscott.emp
WHEREsal>=&temp;
参考答案:
略
4.对scott用户的emp表的输出信息进行格式设置。
其中,empno列设置标题为“员工编号”,NUMBER格式为9999;ename列设置标题为“员工名称”,格式设置为25个字符;hiredate列设置标题为“受雇日期”,并且标题居中显示。
参考答案:
colempnoheading‘员工编号’format9999;
colenameheading‘员工名称’forA25;
colhiredateheading’受雇日期’justifycenter;
5.设置一页显示30行数据,并且设置一行显示130个字符,然后输出scott用户的emp表的全部信息。
参考答案:
SETPAGESIZE30
SETLINESIZE130
SELECT*FROMSCOTT.EMP
四、操作练习
下载SQLDeveloper,建立Oracle数据库的连接,按照书中所述步骤,操作熟悉SQLDeveloper的使用。
4.5习题
一、填空题
1.如果需要在SELECT子句中包括一个表的所有列,可以使用符号___________。
参考答案:
*
2.WHERE子句可以接收FROM子句输出的数据;而HAVING子句可以接收来自FROM、___________或___________子句的输出的数据。
参考答案:
WHERE、GROUP
3.在SELECT语句中,分组条件的子句是___________,对显示的数据进行排序的子句是___________。
参考答案:
GROUPBY、ORDERBY
4.在DML语句中,INSERT语句可以实现插入记录,___________语句可以实现更新记录,___________语句和___________语句可以实现删除记录。
参考答案:
UPDATE、DELETE、TURNCATE
5.___________函数可以返回某个数值的ASCII值,___________函数可以返回某个ASCII值对应的十进制数。
参考答案:
ASCII、CHR
6.使用___________函数,可以把数字或日期类型的数据转换成字符串;使用TO_DATE函数,可以把___________转换成___________,默认的日期格式为___________。
参考答案:
TO_CHAR、字符串、日期型、yyyy-MM-ddHH:
mm:
ss
二、选择题
1.查询scott用户的emp表中的总记录数,可以使用下列哪个语句?
()
A.SELECTMAX(empno)FROMscott.emp;
B.SELECTCOUNT(empno)FROMscott.emp;
C.SELECTCOUNT(comm)FROMscott.emp;
D.SELECTCOUNT(*)FROMscott.emp;
参考答案:
D
2.为了去除结果集中的重复行,可以在SELECT中使用下列哪个关键字?
()
A.ALLB.DISTINCTC.UPDATAD.MERGE
参考答案:
B
3.在SELECT语句中,HAVING子句的作用是()
A.查询结果的分组条件B.组的筛选条件
C.限定返回的行的判断条件D.对结果集进行排序
参考答案:
B
4.下列哪个聚合函数可以把一个列中的所有值相加求和?
()
A.MAX函数B.MIN函数C.COUNT函数D.SUM函数
参考答案:
A
5.如果要统计表中有多少行记录,应该使用下列哪个聚合函数?
()
A.SUM函数B.AVG函数C.COUNT函数D.MAX函数
参考答案:
C
三、简答题
1.标准SQL语言的语句类型可以分为哪三大类,每种语句类型分别用来操纵哪些语句?
参考答案:
数据操纵语言(DML):
用来操纵数据库中数据的命令。
包括:
select、insert、update、delete。
数据定义语言(DDL):
用来建立数据库、数据库对象和定义列的命令。
包括:
create、alter、drop。
数据控制语言(DCL):
用来控制数据库组件的存取许可、权限等的命令。
包括:
grant、deny、revoke。
2.列举几个在WHERE条件中可以使用的操作符。
参考答案:
使用=、>、>=、<、<=、<>符号和BETWEEN。
。
。
AND。
。
。
、IN(set)、LIKE、ISNULL。
3.如果要按照降序对数据进行排序,应该在ORDERBY子句中使用哪个关键字?
参考答案:
DESC
4.下面这个SELECT语句能否输出查询结果?
如果不能,该如何修改?
SELECTempno,ename,deptno,COUNT(*)
FROMscott.emp
GROUPBYdeptno
参考答案:
不能。
SELECTdeptno,COUNT(*)
FROMscott.emp
GROUPBYdeptno
5.指定一个日期值,例如08-8月-2008,获得这个日期与系统当前日期之间相隔的月份数和天数。
参考答案:
selectmonths_between('08-8月-2008',sysdate)mon_betwfromdual;
5.8习题
一、填空题
1.按照约束的用途,主要可以将表的完整性约束分为NOTNULL约束、___________、___________、___________和___________。
参考答案:
Check、UniqueIndex、Primarykey、Foreignkey
2.使用___________关键字,可以快速删除表中的所有记录,并且不在撤消表空间中记录撤消数据。
参考答案:
TRUNCATE
3.___________约束用于定义列中不能出现NULL值,___________约束用于定义列中不能出现重复值,而PRIMARYKEY约束则可以定义列中既不允许出现NULL值,也不允许出现重复值。
参考答案:
NOTNULL、UNIQUE
二、选择题
1.存储数据123.45,可以使用下面哪种数据类型?
()
A.NUMBERB.NUMBER(5)C.NUMBER(5,3) D.NUMBER(5,2)
参考答案:
D
2.如果某列定义了UNIQUE约束,则()
A.该列不允许出现重复值。
B.该列不允许出现NULL值。
C.该列內允许出现一个NULL值。
D.该列允许出现多个NULL值。
参考答案:
A
3.为列定义一个CHECK约束,希望该约束能对表中已存储的数据,以及以后向表中添加或修改的数据都进行检查,则应该将该约束设置为如下哪种状态?
( )
A.ENABLEVALIDATEB.ENABLENOVALIDATE
C.DISABLEVALIDATED.DISABLENOVALIDATE
参考答案:
A
4.使用如下语句创建一个临时表空间temp:
CREAT_________TABLESPACEtemp
_________‘F:
\oraclefole\temp.dbf’
SIZE10M
AUTOEXTENTON
NEXT2M
MAXSIZE20M;
请从下列选项中选择正确的关键字补充上面的语句。
()
A.(不填)、DATAFILEB.TEMP、TEMPFILE
C.TEMPORARY、TEMPFILED.TEMP、DATAFILE
参考答案:
C
5.下列关于约束与索引的说法中哪一项是不正确的?
()
A.在字段上定义PRIMARYKEY约束时会自动创建B树惟一索引
B.在字段上定义UNIQUE约束时会自动创建B树惟一索引
C.在默认的情况下,禁用约束会删除对应的索引,而激活约束会自动重建相应的 索引
D.在定义FOREIGNKEY约束时会创建B树唯一索引
参考答案:
D
三、简答题
1.比较VARCHAR2与CHAR两种数据类型的区别,并举例说明分别在什么情况下使用这两种数据类型。
参考答案:
CHAR的长度是固定的,VARCHAR2的长度是可以变化的,存储字符串“ABC",对于CHAR(10),表示存储的字符将占10个字节(包括7个空字符),而同样的VARCHAR2(10)则只占用3个字节的长度,10只是最大值,当你存储的字符小于10时,按实际长度存储。
VARCHAR2比CHAR节省空间,在效率上比CHAR会稍微差一些。
2.创建一个表后,为表中的某列添加CHECK约束,并分别设置该约束的状态为4种不同的状态,比较这4种状态下的约束检查效果。
参考答案:
略
3.建立一个学生表,表结构如下stu_info(stuidnumber,namevarchar(20),agenumber
(2),sexchar
(2),birthdaydate)
(1)在数据库中建立stu_info表。
(2)添加主键约束(stuid)
(3)添加 check约束(插入的年龄必须大于19岁)
(4)添加 非空约束 (要求姓名不能为空值)
(5)给上面的表添加 唯一约束(要求姓名不可重复)
参考答案:
(1)createtablestu_info(
stuidnumber,
namevarchar(20),
agenumber
(2),
sexchar
(2),
birthdaydate);
(2)ALTERTABLEstu_info
ADDCONSTRAINTstu_info_pkPRIMARYKEY(stuid);
(3)ALTERTABLEstu_info
ADDCONSTRAINTage_checkcheck(age>19);
(4)altertablestu_infomodifynamenotnull;
(5)ALTERTABLEstu_info
ADDCONSTRAINTname_uniunique(name);
6.8习题
一、填空题
1.为了保证在SQL>方式下进行INSERT、DELETE和UPDATE操作达到安全的目的,一般在SQL>下进行操作前,建议将环境设置成为非自动提交的方式,采用的命令是_______,若想取消操作,采取的命令是_______。
参考答案:
setautocommitoff、rollback
2.对某步操作设置相应保存点的命令是_______,当根据需要用命令_______来实现撤消到这一步。
参考答案:
SAVEPOINT、ROLLBACKTO
3.关系数据库中比较常用的SQL中,采用命令_______进行插入,采用_______来进行数据更新,而同时具有更新和插入功能的命令式_______。
参考答案:
INSERT、UPDATA、MERGE
二、选择题
1.PL/SQL块中不能直接使用的SQL命令是()。
A.SELECTB.INSERTC.UPDATED.DROP
参考答案:
D
2.以零作除数时会引发()异常。
A.VALUE_ERRORB.ZERO_DIVIDE
C.STORAGE_ERRORD.SELF_IS_NULL
参考答案:
B
3.要更新游标结果集中的当前行,应使用()子句。
A.WHERECURRENTOFB.FORUPDATE
C.FORDELETED.FORMODIFY
参考答案:
A
4.下面不是常用的数据对象权限的是()
A.DELETEB.REVOKEC.INSERTD.UPDATE
参考答案:
B
5.用于修改表中数据的语句是()
A.EDITB.MODIFYC.UPDATED.ALTER
参考答案:
D
6.在只读表空间上可以执行以下哪些操作?
()
A.CREATETABLEB.ALTERTABLE
C.DROPTABLED.INSERT
参考答案:
C
三、简答题
1.简述DETELE操作与TRUNCATE操作的异同。
参考答案:
truncate,可以删除表中的所有记录,释放表空间,只保留表结构。
delete,如果没有where条件,也是删除表中的所有记录,但是它不释放空间。
TRUNCATE在各种表上无论是大的还是小的都非常快。
如果有ROLLBACK命令DELETE将被撤销,而TRUNCATE则不会被撤销。
RUNCATE将重新设置高水平线和所有的索引。
在对整个表和索引进行完全浏览时,经过TRUNCATE操作后的表比DELETE操作后的表要快得多。
2.已有表文件teacher(教师代码(C),姓名(C),学院(C),职称(C),年龄(N)),
按照要求写出SQL语句。
1.查询职称为"副教授"的教师代码,姓名,学院,职称信息;
2.查询学院为“电信学院”并且职称为“讲师”的所有教师