Oracle数据库考试试题库.docx
《Oracle数据库考试试题库.docx》由会员分享,可在线阅读,更多相关《Oracle数据库考试试题库.docx(36页珍藏版)》请在冰豆网上搜索。
Oracle数据库考试试题库
1.启动数据库的命令(A)。
A.startupB.startupopenC.shutdownD.startupdatabase
2.(C)是启动数据库时用来记录数据文件、联机日志文件的相关信息的二进制文件。
A.数据文件B.参数文件C.控制文件D.归档文件
3.你需要在表SALES里查找一些产品明细,其中PROD_ID列包括字符'_D123'。
(B)WHERE子句条件能得到这些相符产品。
A.WHEREprod_idLIKE'%_D123%'ESCAPE'_'
B.WHEREprod_idLIKE'%\_D123%'ESCAPE'\'
C.WHEREprod_idLIKE'%_D123%'ESCAPE'%_'
D.WHEREprod_idLIKE'%\_D123%'ESCAPE'\_'
4.关于单行函数,哪一个描述是正确的?
(D)
A.他们只能接受一个参数。
B.他们只能嵌套两层。
C.参数只能是字段值或常量。
D.他们始终为查找表中的每个行返回一个值。
5.下面哪个SQL语句显示1890.55as$1,890.55?
(ADE)选三项
A.SELECTTO_CHAR(1890.55,'$0G000D00')
FROMDUAL;
B.SELECTTO_CHAR(1890.55,'$9,999V99')
FROMDUAL;
C.SELECTTO_CHAR(1890.55,'$99,999D99')
FROMDUAL;
D.SELECTTO_CHAR(1890.55,'$99G999D00')
FROMDUAL;
E.SELECTTO_CHAR(1890.55,'$99G999D99')
FROMDUAL;
6.下列关于ORACLE的to_date函数和to_char函数,描述正确的是(BC)选两项
A.to_char函数是将字符串数据转换为日期数据
B.to_date函数是将字符串数据转换为日期数据
C.to_char函数是将日期数据转换为字符数据
D.to_date函数是将日期数据转换为字符数据
7.在表emp里,计算员工的年薪SAL*12并生成别名AnnualSalary。
(B)
A.SELECTename,sal*12,AnnualSalaryFROMemp;
B.SELECTename,sal*12"AnnualSalary"FROMemp;
C.SELECTename,sal*12ASAnnualSalaryFROMemp;
D.SELECTename,sql*12ASINICTAP("AnnualSalary")FROMemp;
8.查看promotion(促销表),每个促销周期为7天。
你的经理要你生成一个报表,提供每周的促销成本。
(D)
A.SELECTpromo_name,promo_cost/promo_end_date-promo_begin_date/7FROMpromotions;
B.SELECTpromo_name,(promo_cost/promo_end_date-promo_begin_date)/7FROMpromotions;
C.SELECTpromo_name,promo_cost/(promo_end_date-promo_begin_date/7)FROMpromotions;
D.SELECTpromo_name,promo_cost/((promo_end_date-promo_begin_date)/7)FROMpromotions;
9.你需要为每个客户的信息额度增加$1000。
在输出时,客户的lastname列头应为Name,cust_credit_limit的列头为NewCreditLimit。
(C)
A.SELECTcust_last_nameName,cust_credit_limit+1000
"NewCreditLimit"
FROMcustomers;
B.SELECTcust_last_nameASName,cust_credit_limit+1000
ASNewCreditLimit
FROMcustomers;
C.SELECTcust_last_nameAS"Name",cust_credit_limit+1000
AS"NewCreditLimit"
FROMcustomers;
D.SELECTINITCAP(cust_last_name)"Name",cust_credit_limit+1000INITCAP("NEWCREDITLIMIT")FROMcustomers;
10.查看表PRODUCTS。
你需要生成一个报表显示如下格式:
CATEGORIES
5MPDigitalPhotoCamera'scategoryisPhoto
YBox'scategoryisElectronics
EnvoyAmbassador'scategoryisHardware
哪两个查询可以获得需要的输出?
(CD)
A.SELECTprod_name||q'''scategoryis'||prod_categoryCATEGORIESFROMproducts;
B.SELECTprod_name||q'['s]'categoryis'||prod_categoryCATEGORIESFROMproducts;
C.SELECTprod_name||q'\'s\'||'categoryis'||prod_categoryCATEGORIESFROMproducts;
D.SELECTprod_name||q'<'s>'||'categoryis'||prod_categoryCATEGORIESFROMproducts;
11.下面查询:
SQL>SELECTcust_nameAS"NAME",cust_credit_limit/2AS
MIDPOINT,MIDPOINT+100AS"MAXLOWERLIMIT"
FROMcustomers;
上面查询在执行时发生错误,这个错误的原因是什么?
(A)
A.一个别名不能使用在表达式中。
B.一个别名NAME没有一个隔开的双引号。
C.MIDPOINT+100是错误的因为CUST_CREDIT_LIMIT包含了NULL值。
D.为CUST_CREDIT_LIMIT/2表达式取一个别名MIDPOINT应用双引号隔开。
12.你想去生成一个报表显示每个员工从入职以来的总的薪金。
你执行下列查询:
SQL>SELECTename'joinedon'hiredate
',thetotalcompensationpaidis'
TO_CHAR(ROUND(ROUND(SYSDATE-hiredate)/365)*sal+comm)
"COMPENSATIONUNTILDATE"
FROMemployees;
输出结果:
哪个说法是正确的?
(C)
A.此查询执行错误是因为别名无效的。
B.此查询能正确执行并得到正确的结果。
C.此查询能正确执行但不能得到正确结果。
D.此查询执行错误是因为ROUND函数是无效的。
13.当你执行下列查询:
SQL>selecte.empno,e.ename,d.loc
2fromempe,deptd
3wheree.deptno=d.deptno
4andsubstr(e.ename,1,1)=‘S’;
下列哪个语句是Oracle数据库中可用的ANSI兼容等价语句?
(A)
A.selectempno,ename,locfromempjoindeptonemp.deptno=dept.deptnowhere
substr(emp.ename,1,1)=‘S’;
B.selectempno,ename,locfromemp,deptonemp.deptno=dept.deptnowhere
substr(emp.ename,1,1)=‘S’;
C.selectempno,ename,locfromempjoindeptwhereemp.deptno=dept.deptnoand
substr(emp.ename,1,1)=‘S’;
D.selectempno,ename,locfromempleftjoindeptonemp.deptno=dept.deptnoand
substr(emp.ename,1,1)=‘S’;
14.你要操纵Oracle数据,下列哪个不是SQL命令?
(B)
A.select*fromdual;
B.setdefine
C.updateempsetename=6543whereename=‘SMITHERS’;
D.createtableemployees(empidvarchar2(10)primarykey);
SQL*Plus中发出的下列语句:
SQL>selectceil(-97.342),
2floor(-97.342),
3round(-97.342),
4trunc(-97.342)
5fromdual;
15.下列哪个函数不返回结果-97?
(B)
A.ceil()B.floor()C.round()D.trunc()
16.查看下面PROMOTIONS表结构:
nameNullType
PROMO_IDNOTNULLNUMBER(6)
PROMO_NAMENOTNULLVARCHAR2(30)
PROMO_CATEGORYNOTNULLVARCHAR2(30)
PROMO_COSTNOTNULLNUMBER(10,2
管理层想看到每种促销种类的唯一促销成本。
下面哪个查询得到需要的结果?
(D)
A.SELECTDISTINCTpromo_cost,promo_categoryFROMpromotions;
B.SELECTpromo_category,DISTINCTpromo_costFROMpromotions;
C.SELECTDISTINCTpromo_cost,DISTINCTpromo_categoryFROMpromotions;
D.SELECTDISTINCTpromo_category,promo_costFROMpromotionsORDERBY1;
17.在Oracle数据库10g/11g里哪三个关于数据类型描述正确的是?
(ADE)
A.每个表里只能有一个LONG字段。
B.一个TIMESTAMP数据类型字段只能存储带秒的时间值。
C.BLOB数据类型字段用于在操作系统文件里存储二进制数据。
D.可以为一个VARCHAR2数据类型列中指定的最小列宽为1
E.一个CHAR数据类型列中的值是空格填充到最大定义的列宽
18.查看下面表EMP_DETAILS结构:
nameNULLTYPE
EMP_IDNOTNULLNUMBER
EMP_NAMENOTNULLVARCHAR2(40)
EMP_IMAGELONG
19.哪两个SQL语句在表EMP_DETAILS执行是正确的?
(BC)
A.一个EMP_IMAGE字段能包含在GROUYBY子句。
B.一个EMP_IMAGE字段不能包含在ORDERBY子句。
C.你不能在表中增加新的LONG字段。
D.您可以更改表,包括对EMP_IMAGE列的NOTNULL约束。
20.检查下列表结构:
nameNullType
TRANS_IDNOTNULLNUMBER(6)
CUST_NAMENOTNULLVARCHAR2(20)
CUST_STATUSNOTNULLCHAR
TRANS_DATENOTNULLDATE
TRANS_VALIDITYVARCHAR2
CUST_CREDIT_LIMITNUMBER
在上面的表结构中创建和存储中哪些说法是正确的?
(BC)选二项
A.CUST_STATUS列将给出错误。
B.TRANS_VALIDITY列将给出错误。
C.CUST_STATUS列能存储一个字符。
D.CUST_CREDIT_LIMIT列不能存储有小数位的值。
E.TRANS_VALIDITY列最大长度为一个字符。
F.TRANS_DATE列能存储天、月、世纪、年、小时、分、秒和秒的小数部分。
21.查看下面表TRANSACTIONS结构:
nameNullType
TRANS_IDNOTNULLNUMBER(6)
CUST_NAMENOTNULLVARCHAR2(20)
CUST_STATUSNOTNULLVARCHAR2
TRANS_DATENOTNULLDATE
TRANS_VALIDITYINTERVALDAYTOSECOND
CUST_CREDIT_VALUENUMBER(10)
22.在上面的表结构中创建和存储中哪些说法是正确的?
(BC)选二项
A.TRANS_DATE列只允许存储格式为dd-mon-yyyy的日期。
B.CUST_CREDIT_VALUE列允许存储正负整数。
C.TRANS_VALIDITY列允许存储日、小时、分和秒间隔时间。
D.CUST_STATUS列允许存储最大为4000字符。
23.下列哪个CREATETABLE语法是有效的?
(A)
A.CREATETABLEemp9$#(emp_noNUMBER(4));
B.CREATETABLE9emp$#(emp_noNUMBER(4));
C.CREATETABLEemp*123(emp_noNUMBER(4));
D.CREATETABLEemp9$#(emp_noNUMBER(4),dateDATE);
24.哪两个关于约束正确的说法?
(BD)选二项
A.外键不能包含NULL值。
B.一个有UNIQUE约束的字段能包含NULL值。
C.约束是只对一个表上的INSERT操作执行。
D.约束能被禁用即使约束字段包含数据。
E.所有的约束可以在列级定义,也可以在表级别定义。
25.评估下列CREATETABLE命令:
CREATETABLEorders
(ord_noNUMBER
(2)CONSTRAINTord_pkPRIMARYKEY,
ord_dateDATE,
cust_idNUMBER(4));
CREATETABLEord_items
(ord_noNUMBER
(2),
item_noNUMBER(3),
qtyNUMBER(3)CHECK(qtyBETWEEN100AND200),
expiry_datedateCHECK(expiry_date>SYSDATE),
CONSTRAINTit_pkPRIMARYKEY(ord_no,item_no),
CONSTRAINTord_fkFOREIGNKEY(ord_no)REFERENCESorders(ord_no));
当执行上述命令时失败,原因是什么?
(A)
A.SYSDATE不能用于CHECK约束。
B.BETWEEN子句不能用于CHECK约束。
C.CHECK约束不能放在具有DATE数据类型的列。
D.ORD_NO和ITEM_NO不能用于复合主键因为ORD_NO也是外键。
26.评估下列SQL命名:
SQL>CREATESEQUENCEord_seq
INCREMENTBY10
STARTWITH120
MAXVALUE9999
NOCYCLE;
SQL>CREATETABLEord_items
(ord_noNUMBER(4)DEFAULTord_seq.NEXTVALNOTNULL,
item_noNUMBER(3),
qtyNUMBER(3)CHECK(qtyBETWEEN100AND200),
expiry_datedateCHECK(expiry_date>SYSDATE),
CONSTRAINTit_pkPRIMARYKEY(ord_no,item_no),
CONSTRAINTord_fkFOREIGNKEY(ord_no)REFERENCESorders(ord_no));
上述命令建立表失败,哪两个SQL语法失败?
(AC)
A.你在CHECK约束的条件下不能使用SYSDATE。
B.你在CHECK约束条件下不能使用BETWEEN。
C.你不能使用NEXTVAL序列值作为列的DEFAULT值。
D.ORD_NO和ITEM_NO不能用于复合主键因为ORD_NO也是外键。
27.哪个CREATETABLE语法是有效的?
(D)
A.CREATETABLEord_details
(ord_noNUMBER
(2)PRIMARYKEY,
item_noNUMBER(3)PRIMARYKEY,
ord_dateDATENOTNULL);
B.CREATETABLEord_details
(ord_noNUMBER
(2)UNIQUE,NOTNULL,
item_noNUMBER(3),
ord_dateDATEDEFAULTSYSDATENOTNULL);
C.CREATETABLEord_details
(ord_noNUMBER
(2),
item_noNUMBER(3),
ord_dateDATEDEFAULTNOTNULL,
CONSTRAINTord_uqUNIQUE(ord_no),
CONSTRAINTord_pkPRIMARYKEY(ord_no));
D.CREATETABLEord_details
(ord_noNUMBER
(2),
item_noNUMBER(3),
ord_dateDATEDEFAULTSYSDATENOTNULL,
CONSTRAINTord_pkPRIMARYKEY(ord_no,item_no));
28.你用下列命令删除PRODUCTS表:
SQL>DROPTABLEproducts;
下列哪三个说法正确的?
(ABD)
A.表的结构及所有数据都删除。
B.在会话中未提交的事务被提交。
C.表对应的所有的索引将保留但他们变为无效。
D.所有的视图和同义词将保留但他们变为无效。
E.所有的数据被删除但是表结构将保留。
29.检查下列CREATESEQUENCE语法:
CREATESEQUENCEseq1
STARTWITH100
INCREMENTBY10
MAXVALUE200
CYCLE
NOCACHE;
当SEQ1序列生成到最大值为200。
你执行下列SQL语法:
SELECTseq1.nextvalFROMdual;
此SELECT语法显示什么?
(A)
A.1
B.10
C.100
D.出现错误
30.下面哪两个关于索引说法正确?
(AD)
A.他们可以建立在表和聚簇上。
B.他们可以建立在表上和简单视图上。
C.你可以使用相同的列创建唯一索引。
D.如果你指定相同列的不同组合可以建立多个索引。
31.检查下列SQL语法:
用PRODUCTS表,你需要生成名字,当前价格列表,及打折扣25%后小于$10的所有的这些产品。
SQL>SELECTprod_name,prod_list_price,
prod_list_price-(prod_list_price*.25)"DISCOUNTED_PRICE"
FROMproducts
WHEREdiscounted_price<10;
此查询执行时发生一个错误。
此错误的原因是什么?
(C)
A.括号应包含整个表达式。
B.双引号应该从列别名被删除。
C.在WHERE子句的表达式应被替换。
D.列别名应为大写且在WHERE子句中用双引号括起来。
32.查看表PROMOTIONS表,PROMO_BEGIN_DATE是存储默认的日期,格式为dd-mon-rr.
你需要查看一个报表包括表promos所有的name,cost,startdate。
你能用哪个语法显示下列内容?
(D)
A.SELECTpromo_name,promo_cost,promo_begin_date
FROMpromotions
WHEREpromo_category='post'ANDpromo_begin_date<'01-01-00';
B.SELECTpromo_name,promo_cost,promo_begin_date
FROMpromotions
WHEREpromo_costLIKE'post%'ANDpromo_begin_date<'01-01-2000';
C.SELECTpromo_name,promo_cost,promo_begin_date
FROMpromotions
WHEREpromo_categoryLIKE'P%'ANDpromo_begin_date<'1-JANUARY-00';
D.SELECTpromo_name,promo_cost,promo_begin_date
FROMpromotions
WHEREpromo_categoryLIKE'%post%'ANDpromo_begin_date<'1-JAN-00';
33.查看PART_CODE字段包括下列内容:
PART_CODE
---------------------
A%_WQ123
A%BWQ123
AB_WQ123
检查下列查询:
SQL>SELECTpart_codeFROMsparesWHEREpart_codeLIKE'%\%_WQ12%'ESCAPE'\';
哪个语句的输入是正确的?
(D)
A.此语句错误.
B.此语句显示所有的值.
C