Oracle笔考试试题参考答案docx.docx
《Oracle笔考试试题参考答案docx.docx》由会员分享,可在线阅读,更多相关《Oracle笔考试试题参考答案docx.docx(27页珍藏版)》请在冰豆网上搜索。
Oracle笔考试试题参考答案docx
f
(考试时间:
180分钟试卷满分:
300分)
注意事项:
1.答卷前,请关闭手机,禁止使用设备对试卷进行拍照。
2.请务必将个人相关信息填写在相应位置。
3.请将答案填写在相应位置,否则无效。
第一部分单选题(每题2分,满分80分)
做题时,先将答案标在试卷上,录音结束后,你将有两分钟的时间将试卷上的答案转涂到答题卡上。
一、单选题(每题2分*40=80分)
1.使用Oracle数据库,必须启动哪个服务()
A.Orac1eHOMENAMETNSListenerB・OracleServiceSID
C.OracleMTSRecoveryServiceD・OracleJobSchedulerSID
2.在Windows操作系统中,Oracle的()服务监听并接受来自客户端应用程序的连接请求。
A.Orac1eHOMENAMETNSListenerB.OracleServiceSID
C.Orac1eHOME_NAMEAgentD.OracleHOMENAMEHTTPServer
3.用二维表结构表达实体集的模型是()
A.概念模型B.层次模型C.网状模型D.关系模型
4.Oraclellg是基于()的
A.关系型B.文件系统C.层次型D.网络型
5.()代表了数据库中最小粒度的逻辑数据存储层次。
A.盘区B.表空间C.数据块D.数据文件
6.你使用下列命令连接数据库:
sqlplusscott/trigger@abc.com:
1522/orcl.@标数据库是哪一个?
()
A.abc.comB.tigerC.orclD.scott
7.设有一个关系:
DEPT(DNO,DNAME,LOC),如果要找出倒数第三个字母为W,并且至少包
含4个字母的DNAME,则查询条件子句应写成WHEREDNAMELIKE()
A._W_%'B.'_%W_C.W_D.W_%’
8.下列解锁scott账户的命令正确的是()
A、updateuserscottaccourrtunlock;
B>alteruserscottaccourrtunlock;
C、alteruserscottunlock;
9.having,where,groupby的正确执行顺序是()
A、having,where,groupby
B、groupby,having,where
C、where,having,groupby
D、where,groupby,having
10.分析下面两个SQL语句,选项中说法正确的有()
SELECTlast_name,salary,hire_date
FROMEMPLOYEES
ORDERBYsalaryDESC;
SELECTlast_name,salary,hire_date
FROMEMPLOYEES
ORDERBY2DESC;
A、两个SQL语句的结果完全相同
B、第二个SQL语句产生语法错误
C、没有必要指定排序方式为desc,因为默认的排序方式是降序排序
D、可以通过为第二个SQL语句的salary列添加列别名来使两个SQL语句得到相同的结果注意:
Orderbygroupby后跟数字,代表select后的字段的位置
11.数据库设计中用关系模型表示实体和实体之间的联系。
关系模型的结构是()。
A、层次结构
B、二维表结构
C、网状结构
D、封装结构
12哪个SQL语句生成计算列SALARY*12的别名一年薪?
()
A、
SELECTename,salary*^JAnnualSalary'
FROMemployees;
SELECTename,salary*12z,AnnualSalary"
FROMemployees;
C、
SELECTename,salary*12ASAnnualSalary
FROMemployees;
D、
SELECTename,salary*12ASINITCAP("ANNUALSALARY")
FROMemployees
别名中间有空格必须双引号
函数INITCAP0是将每个单词的第一个字母大写,其它字母变为小写返回.单词由空格,控制字符,标点符号等非字母符号限制.
13.并发操作会带来哪些数据不一致性?
()
A、丢失修改、不可重复读、读脏数据、死锁
B、不可重复读、读脏数据、死锁
C、丢失修改、读脏数据、死锁
D、丢失修改、不可重复读、读脏数据
14.对于满足SQL92标准的SQL语句:
SELECTfoo,count(foo)FROMpokesWHEREfoo>10GROUPBYfooHAVINGORDERBYfoo,其执行的顺序应该为()。
A、FROM->WHERE->GROUPBY->HAVING->SELECT->ORDERBY
B、FR0M->GR0UPBY->WHERE->HAVING->SELECT->ORDERBY
C、FROM->WHERE->GROUPBY->HAVING->ORDERBY->SELECT
D、FROM->WHERE->ORDERBY->GR0UPBY->HAVING->SELECT
15.使用哪个SELECT语句从系统日期中提取年份并以“1998”格式显示?
A、
SELECTTO_CHAR(SYSDATE,'yyyy')
FROMdual;
B、
SELECTTO_DATE(SYSDATE,'yyyy')
FROMdual;
C、
SELECTDECODE(SUBSTR(SYSDATE,8),'YYYY')
FROMdual;
D、
SELECTDECODE(SUBSTR(SYSDATE,8),'year')
EMPNO
ENAME
JOB
MGR
HIREDATE
7369
SMITH
CLERK
7902
1980-12-1700:
00:
00
7499
ALLEN
SALESMAN
7698
1981-02-2000:
00:
00
7521
WARD
SALESMAN
7698
1981-02-2200:
00:
00
7566
JONES
MANAGER
7839
1981-04-0200:
00:
00
7654
MARTIN
SALESMAN
7698
1981-09-2800:
00:
00
注意:
oracle两个时间相减默认的是天数HIREDATE+10是加10天
To_date()第一个参数是字符串类型
To_char()第一个参数是日期类型
SELECTENAME,to_date(SYSDATE-HIREDATE,'yyyy-mm-dd')FROMEMP;
B、
SELECTENAME,to_date(HIREDATE+10,'yyyy-imn-dd')FROMEMP;
C、
SELECTENAME,to_char(HIREDATETO,'yyyy-mm-dd')FROMEMP;
D、
SELECTENAME,to_char(SYSDATE-HIREDATE,'yyyy-mm-dd')FROMEMP;
17.观察下表(EMP),本月老板要在所有员工原有奖金的基础上多发500元的奖金,查询出所有员工姓名以及他的奖金,下列SQL语句能够满足该需求的是()
EMPNOENAME
JOB
MGRHIREDATE
SAL
COMMDEPTNO
7369SMITH
CLERK
79021980-12-1700:
00:
00
800
20
7499ALLEN
■salesman
76981981-02-2000:
00:
00
1600
300
30
7521WARD
SALESMAN
76981981-02-2200:
00:
00
1250
500
30
1、nvl(value1,value2)
这个函数的意思是如果value1的值为null,那么函数返回value2的值,如果value1不为空,那么就返回valuel的值。
2、nvl2(valuel,value2,value3)
这个函数的意思是如果valuel的值为null函数返回value3否则函数返回value2也就是说函数永远不会返回value1
A、
SELECTENAME,C0MM+500FROMEMP;
B、
SELECTENAME,NVL(COMM,0)+500FROMEMP;
C、
SELECTENAME,NVL(C0MM+500,0)FROMEMP;
D、
SELECTENAME,NVL2(COMM,0)+500FROMEMP;
18.客表(customers)中有一存储顾客姓名的字段(customerName),现在想显示"欢迎customerName光临小店〃的字样,下列SQL语句能够满足该需求的是()
A、
SELECT〃欢迎〃||customerName||〃光临小店"FROMcustomers;
B、
SELECT'欢迎||customerName||J光临小店'FROMcustomers;
C、
SELECT'欢迎|customerName|J光临小店'FROMcustomers;
D、
SELECT〃欢迎〃|customerName|〃光临小店‘〃FROMcustomers;
19.Whichsta/tementshowsthemaximumsalarypaidineachjobcategoryofeach
department?
()
A、Selectdept_id,job_cat,max(salary)fromemployeeswheresalary>max(salary);
B>Selectdept_id,job_cat,max(salary)fromemployeesgroupbydept_id,job_cat;
C、Selectdept_id,job_cat,max(salary)fromemployeesgroupbydept_id;
D、Selectdept_id,job_cat,max(salary)fromemployeesgroupbydept_id,jobcat,salary;
20.关于右外连接查询的说法不正确的是()
A、两表进行右外连接查询和左外连接查询查询出的结果都是一样的
B、右外连接查询是以右侧的表为主表
C、右外连接查询可以和左外连接查询相互转换
D、右外连接查询查询时右表中的记录会全部显示
21.
观察employees表的表结构,经理要求你创建一个视图EMP_VU,该视图允许用户通过视图向表中插入数据,选项中符合要求的是()
oftheDEPARTMENTStable
A、
CREATEVIEWemp_vuAS
SELECTemployee_id,emp_name,
department_id
FROMemployees
WHEREmgr_idIN(102,120);
B>
CREATEVIEWemp_vuAS
SELECTemployee_id,emp_name,job_id,
departmerit_id
FROMemployees
WHEREmgr_idIN(102,120);
C、
CREATEVIEWemp_vuAS
SELECTdepartment_id,SUM(sal)TOTALSAL
FROMemployees
WHEREmgr_idIN(102,120)
GROUPBYdepartment_id;
D、
CREATEVIEWemp_vuAS
SELECTemployee_id,emp_name,job_id,
DISTINCTdepartment_id
FROMemployees;
22.观察customers表的表结构,其中CUSTOMER_ID是表的主键。
下列哪个选项能够查询出“LosAngeles”和“SanFrancisco”的城市地址(city_address),以及每个城市里顾客的数量()
CUSTOMER_IDCUSTOMER_NAMESTREET_ADDRESSCITY_ADDRESSSTATE_ADDRESSPROVINCE_ADDRESScountrvJaddressPOSTAL_CODECUSTOMER_PHONE
A、
SELECTcity_address,COUNT(*)
FROMcustomers
WHEREcity_addressIN('LosAngeles','SanFrancisco,);
E、
SELECTcity_address,COUNT(*)
FROMcustomers
WHEREcity_add:
ressIN('LosAngeles','SanFrancisco,)
GROUPBYcity_address;
C、
SELECTcity_address,COUNT(customer_id)
FROMcustomers
WHEREcity_addressIN(,LosAngeles,,JSanFrancisco,)
GROUPBYcityaddress,customerid;
D、
SELECTcity_address,COUNT(customer_id)
FROMcustomers
GROUPBYcity_addressIN('LosAngeles','SanFrancisco'):
23.执行下列SQL语句的集合,下列选项正确的是()
CREATETABLEdept(deptnoNUMBER
(2),dnameVARCHAR2(14),locVARCHAR2(13));
ROLLBACK;
DESCRIBEDEPT
A、DESCRIBEDEPT语句显示DEPT表的结构。
B、ROLLBACK语句释放DEPT表占用的存储空间。
C、DESCRIBEDEPT语句返回错误ORA-04043:
objectDEPT不存在。
D>DESCRIBEDEPT语句仅在ROLLBACK语句之前引入了COMMIT语句时才显示DEPT表的结构。
24.在PL/SQL代码段的异常处理块中,捕获所有异常的关键词是o
A、OTHERSB、ALLC、ExceptionD、ERRORS
常见的预定义异常
ZERO_DIVIDE:
除数等于零
DUP_VAL_ON_INDEX:
违反唯一性约束
SYS_INVALID_ID:
无效的ROWID字符串
TIMEOUT_ON_RESOURCE:
Oracle在等待资源时超时
others可以代表所有异常
声明
业务处理
异常处理
25.关于关系范式的规范化,下列说法正确的是()
A、数据库系统中的关系所属范式越高越好,因为所属范式越高,存储表所占内存开销越小
B、数据库系统中的关系所属范式越低越好
C、一般对表分解到3NF即可
D、不能对表只分解到2NF
26.关于序列的说法正确的是()
A、一旦创建,序列属于特定模式(schema)。
B、一旦创建,序列链接到特定的表。
C、一旦创建,序列将自动提供给所有用户。
D、只有DBA可以控制某个表使用哪个序列。
E、一旦创建,序列将自动在所有INSERT和UPDATE语句中使用。
27.PL/SQL中,要引用表中字段的数据类型,应使用()
A.%rowtype
B.%found
C.%type
D.%rowcount
28.下面哪个SQL命令用来向表中添加列()
A、MODIFYTABLETab1eNameADDCOLUMNColumnName
B、MODIFYTABLETab1eNameADDColumnName
C、ALTERTABLETab1eNameADDCOLUMNColumnName
D、ALTERTABLETab1eNameADDColumnNameType
ALTERTABLE<表名〉
[ADD[COLUMN]<新列名><数据类型〉[完整性约束]]
[ADD<表级完整性约束〉]
[DROP[COLUMN]<列名〉[CASCADE|RESTRICT]]
[DROPCONSTRAINT<完整性约束名〉[CASCADE|RESTRICT]]
[ALTERCOLUMN<列名><数据类型〉]
CASCADE:
级联操作
RESTRICT:
默认,如果子表中有匹配的记录,则不允许对父表对应候选键进行update/delete操作
29.一辆汽车由多个零部件组成,且相同的零部件可适用于不同型号的汽车,则汽车实体集与零部件实体集之间的联系是()?
A、1:
M
B、1:
1
C、M:
1
D、M:
N
30.当删除一个用户的操作时,在什么情况下,应该在DROPUSER语句中使用CASCADE(级
联)选项?
()
A.这个模式包含了对象
B.这个模式没有包含了对象
C.这个用户目前与数据库连接着
D.这个用户必须保留但是用户的对象需要删除
如果要删除的(用户)模式包括了对象,要在DROPLISER语句中使用CASCADE子句来删除模式中的所有对象
不能删除当前正在与Oracle服务器相连的用户
当一个用户被删除之后,该用户中的所有对象也都会从系统中消失
31.要截断(TRUNCATE)其他用户拥有的一个表,需要哪一个权限?
()
A.ALTERTABLEB.DROPANYTABLEC.DELETEANYTABLED.TRUNCATEANYTABLE
TRUNCATE清空表中数据,速度快,不可回滚
Delete删除表中数据,可以回滚
32.利用PL/SQL语句将”数据库原理”课程的学分赋值给变量的语句是()
33.
A、selectxuefeninto@xuefenfromcoursewherecname='数据库原理'
34.如下SQL语句中,可能返回null值。
(1)selectcount(*)fromtl;
(2)selectmax(coll)fromtl;
(3)selectconcat(,max(coll))fromtl;
A、
(1)可能,
(2)和(3)不可能
B、
(2)可能,
(1)和(3)不可能
C、(3)可能,
(1)和
(2)不可能
D、
(1)不可能,
(2)和(3)可能
此题Oracle选B,如果是Oracle外的MySQL等则选D。
因MySQL数中有空则结果空。
Count(*)不可能返回空值,即使一条记录都没有,返回0;
如果表中没有记录),max(col1)返回空;
(3)中就算max(col1)返回null,也仍将剩余"max="。
35.下面有关tablespace和datafile之间的关系的描述,说法错误的是?
()
A、一个tablespace可以有一个或多个datafile
B、每个datafile只能在一个tablespace内
C、table中的数据,通过hash算法分布在tablespace中的各个datafile中D、datafile是逻辑上的概念,tablespace贝!
J在物理上储存了数据库的种种解析:
datafile是物理上的概念,tablespace则在逻辑上储存了数据库的种种selectnamefromv$datafile;//查看数据文件F:
\APP\ADMINISTRATOR\ORADATA\ORCL\SYSTEMO1.DBF
selectnamefromv$controlfile;
selectmemberfromv$logfile;
36.视图定义是()
A.一个基表中导出的基表
B.一个基表中导出的虚表
C.一个或几个基表或视图中导出的基表
D.一个或几个基表或视图中导出的虚表
37.下面有关索引的描述正确的是()
A.不可以在多个列上创建复合索引。
B.可以在多个列上创建复合索引。
C.索引列中的数据不能重复出现。
D.索引列中的数据必须是数值型。
38.如果希望更新表authors中的first_name列为非空,那么可以使用哪个语句?
()
A.aItertableauthorsaddfirst_namenotnull
B.altertableauthorsmodifyfirst_namenotnull
C.altertableouthorsalterfirst_nanienotnull
D.altertableauthorsdropfirst_namenotnull
39.下列哪一个命令可以将一个文件的备份还原到数据库原目录中?
()
A.RECOVERB.BACKUPC.COPYD.RESTORE
40.下列哪一个命令可以用来执行不完全恢复?
()
A.RESTOREDATABASEUNTIL
B.RECOVERDATABASEUNTIL
C.RECOVERDATAUNTIL
D.RESTOREDATAUNTIL
41.观察下表(EMP)需要查询出奖金(COMM)为空,正确的SQL语句是()
EMPNOENAME
JOB
MGRHIREDATE
SAL
COMMDEPTNO
7369SMITH
CLERK
79021980-12-1700:
00:
00
800
20
3ALLEN
SALESMAN
76981981-02-2000:
00:
00
1600
300
30
7521WARD
SALESMAN
76981981-02-2200:
00:
00
1250
500
30
7566JONES
MANAGER
78391981-04-0200:
00:
00
2975
20
A、
B、
SELECT*FROMEMPWHERECOMM=0
C、
SELECT*FROMEMPWHERECOMMISNULL;
D、
SELECT*FROMEMPWHERECOMMIS0;
二、多选题