oracle面试测试题Word文档下载推荐.docx
《oracle面试测试题Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《oracle面试测试题Word文档下载推荐.docx(21页珍藏版)》请在冰点文库上搜索。
142国际金融经济学199814
student表:
8101张三18101
8102钱四16121
8103王玲17131
8104李飞19102
8105王五20141
(3)完成下列查询:
列出所有人数大于等于28的系的编号和名称
列出所有开设超过两个专业的系的名字
显示每个学生的学号、姓名、专业、系名信息
2、oracle函数的使用
针对scott.emp表,实现如下查询操作:
(1)把员工姓名和工作连接在一起,中间用“--”分隔显示。
(2)分别显示工姓名的前三个字符和第四个字符后的内容
(3)显示字母T在员工姓名中第一次和第二次出现的位置
(4)显示12年前参加工作的员工信息
(5)查询在当月倒数第三天参加工作的员工信息
(6)显示每个员工的工作天数
(7)按照每月30天,计算每个员工的日薪金
(8)按照年和月的格式显示员工参加工作的时间(如SMITH198012)
(9)查询在1987年2月到5月参加工作的员工信息(包括2月和5月)
(10)显示每个员工的津贴信息,没有津贴就显示0
(11)分别显示员工的总人数和津贴不为空的员工人数
(12)显示部门最低工资大于900的部门和最低工资
(13)显示每个部门工资在1400以上的所有员工的工资总额
(14)显示部门名称以及该部门的员工总数,没有员工的以0显示
(15)显示每个部门中最高工资的员工信息
3、员工培训系统的案例
Employee员工表:
EIDNameDepartmentJobEmailpassword
10001李明SBBEG
10003李四LUCKITM
11045胡斐SBBEG
10044张三MTDETN
10023王刚MMMETN
Training培训记录表:
CourseIdEIDCourseGradeorders
110001T-SQL60
311045java71
210003oracle59
110003T-SQL90
310044java78
210001oracle69
210023oracle70
320001Java69
310078Java58
完成如下sql语句:
(1)建立两个表的表结构,自行分析,根据需要设置主键
(2)用sql语句进行册书数据的添加
(3)列出所有员工参加培训的情况,要求显示:
EID,Name,department,course,grade用一条sql语句完成
(4)列出未参加培训的员工信息,显示格式如上
(5)列出所有各课成绩最高的员工信息,显示格式如上
(6)把所有表2有但表1没有的员工编号插入表1中,一条语句完成
(7)统计各部门的人数
(8)统计各部门中姓李的人数
4、pl/sql练习
(1)输入一个员工号,输出该员工的姓名、薪金和工作天数
(2)接手一个员工号,如果该员工职位是”MANAGER”,并且在DALLAS工作,那么加薪15%,如果职位是CLERK,并在NEWYORK工作,降薪5%,其他情况不做处理。
(3)接收一个员工号,输出这个员工的所在部门的平均工资。
(4)接收一个员工号,如果直接上机是BLAKE,而且1981年6月以前工作的,加薪10%,0981年6月以后工作的加薪5%。
(5)接收一个员工号,在部门10工作的加薪10%,部门20工作的加薪20%,一次类推
(6)接收一个员工号,检查该雇员的薪水是否在有效范围内。
不同职位的薪水范围为:
DesignationRange
Clerk1500~2500
Salesman2501~3500
Analyst3501~4500
Others4501andabove
如果薪水在此范围内,则显示消息“SalaryisOK!
”,否则,更新薪水为该范围内的最小值。
(7)接收两个数相除并且显示结果。
如果第二个数为0,则显示信息“Didn’tyourmothertellyounottoDIVIDEBYZERO?
”。
(8)根据雇员名输出雇员工资,并为工资低于2000的雇员增加20%,显示雇员增加工资后的新工资
(9)为emp表进行更新,根据雇员编号,把comm非空的加100元,其他的加200元,并存入emp表
(10)输入雇员的编号,根据雇员的岗位不同ANALYST加100,CLERK加200,MANAGER加300,PRESIDENT加400,SALESMAN加500.
输出雇员的原工资和新工资,不要提交到数据库。
(用if语句)
(11)利用case语句完成第10题的要求
5、索引的使用
aa,bb表都有20个字段,且记录数量都很大,aa,bb表的X字段(非空)上有索引,
请用SQL列出aa表里面存在的X在bb表不存在的X的值,请写出认为最快的语句,并解译原因。
6、复合查询测试
客户表a(idnameaddress)登陆流水表b(idtime)购物流水表c(idtimeproductidproductnum)
(1)求每个客户的最新登陆时间time,姓名name,客户id?
(2).最新登陆并且已经购买商品的客户id,name,登陆的时间time(一条sql语句)
一个表student中有班级classid,学号id,成绩grade
(1)计算各个班的平均成绩
(2).查找比该班平均成绩高的学生的班级classid,学号id,成绩grade
二:
选择题:
1.你判断下面语句,有什么作用?
(选择1项)
GRANTupdateONinventoryTOjoeWITHGRANTOPTION;
A.一个系统权限被授予用户JOE
B.一个对象权限被授予用户JOE
C.用户JOE被授予在这个对象上的所有权限
D.一个系统权限和一个对象权限被授予用户JOE
2.表(PERSONNEL)包含以下列:
IDNUMBER(9)
LAST_NAMEVARCHAR2(25)
FIRST_NAMEVARCHAR2(25)
MANAGER_IDNUMBER(9)
假设:
部门经理是一名职员,判断下面两个语句执行结果有何不同:
SELECTp.last_name,p.first_name,m.last_name,m.first_nameFROMpersonnelp,personnelmWHEREm.id=p.manager_id;
SELECTp.last_name,p.first_name,m.last_name,m.first_nameFROMpersonnelp,personnelmWHEREm.manager_id=p.id;
A.其中一个语句不能执行
B.其中一个语句不是自连接
C.结果相同,显示顺序不同
D.结果不同,显示相同
3.哪一子句可实现SELECT语句查询单价小于5.00的ID_NUMBER?
(选择1项)
A.WHEREprice<
5.00
B.HAVINGprice<
C.ORDERBYprice<
D.GROUPBYprice<
4.判断下面句子:
SELECTi.id_number,m.id_numberFROMinventoryi,manufacturerm
WHEREi.manufacturer_id=m.id_numberORDERBY1;
哪一子句可以防止表INVENTORY和表MANUFACTURER发生完整外部联接?
A.ORDERBY1;
B.SELECTi.id_number,m.id_number
FROMinventoryI,manufacturerm
C.WHEREi.manufacturer_id=m.id_number
D.以上都不对
5.判断这PL/SQL代码块:
BEGIN
FORiIN1..6LOOP
IFi=2ORi=3THEN
null;
ELSE
INSERTINTOexample(one)
VALUES(i);
ENDIF;
ROLLBACK;
ENDLOOP;
COMMIT;
END;
有多少行被插入到表EXAMPLE?
A.0
B.1
C.2
D.3
6.你关闭表INVENTORY上的ID列上的主键约束,且修改表INVENTORY上的所有值后,你需要激活约束并校验列值是否违反约束。
如果ID值不符合约束,错误信息将返回,判断下面命令:
ALTERTABLEinventoryENABLECONSTRAINTinventory_id_pk;
哪种说法正确?
A.将得到想要的结果.
B.语句执行,但不能激活约束.
C.语句执行,但不能校验ID是否违反约束.
C.将返回语法错误.
7.表CLASSES和表SCHEDULE结构如下:
CLASSES:
CLASS_NAMEVARCHAR2(20)
TEACHER_IDNUMBER(9)
SCHEDULE:
CLASS_TIMEDATE
CLASS_IDNUMBER(9)
你建一个视图显示每一课的课名、课时,并按教师ID排序,判断下面语句将返回何种结果?
CREATEVIEWclass_scheduleAS
SELECTC.class_name,s.class_timeFROMclassesc,schedulesWHEREC.id=s.class_id;
A.语句创建视图CLASS_SCHEDULE且可产生预期结果.
B.语句创建视图CLASS_SCHEDULE但不能产生预期结果.
C.语法错误,因为视图不可基于连接查询.
D.语法错,因为语句未包含ORDERBY子句.
8.判断是否同时满足两个条件,应该用下面哪个操作符?
A.OR
B.NOT
C.AND
D.None
9.哪一个算术运算将返回一个数值?
A.'
01-FEB-1998'
+25
B.'
03-DEC-1997'
-30
C.'
07-JUL-1997'
+(480/24)
D.TO_DATE('
01-JAN-1998'
)-TO_DATE('
01-DEC-1996'
)
10.哪句可以实现用户Marilyn的表INVENTORY不用指定其属主,直接供所有用户引用?
A.CREATESYNONYMinventoryFORinventory;
B.CREATEPUBLICSYNONYMinventoryFORmarilyn;
C.CREATEPUBLICSYNONYMinventoryFORmarilyn.inventory;
D.CREATEPUBLICinventorySYNONYMFORmarilyn.inventory;
11.在一个PL/SQLIF-THEN语句中,什么值将引起条件语句执行?
A.NULL
B.TRUE
C.FALSE
D.以上都不对
12.哪句可以实现显示id和description,条件满足订单时间在January1,1997以前的,且单价小于1.00或者大于5.00的,结果用订单时间降序排列。
A.SELECTid_number,descriptionFROMinventory
WHEREpriceIN(1.00,5.00)ORorder_date<
'
01-JAN-97'
ORDERBYorder_dateDESC;
B.SELECTid_number,descriptionFROMinventory
WHEREpriceBETWEEN1.00AND5.00ORorder_date<
01-JAN-1997'
ORDERBYorder_date;
C.SELECTid_number,descriptionFROMinventory
WHEREprice<
1.00ORprice>
5.00ANDorder_date<
01-Jan-97'
ORDERBYorder_dateASC;
D.SELECTid_number,descriptionFROMinventory
WHERE(price<
1.00ORprice>
5.00)ANDorder_date<
13.哪一个命令允许你直接修改一个已存在的视图?
A.ALTER
B.CREATE
C.MODIFY
D.CREATEORREPLACE
14.哪一语句可实现增加表employee的列NAME的长度到25?
A.ALTERTABLEemployeeMODIFYnameVARCHAR2(25);
B.ALTERTABLEemployeeRENAMEnameVARCHAR2(25);
C.ALTERemployeeTABLEMODIFYCOLUMNnameVARCHAR2(25);
D.ALTERemployeeTABLEMODIFYCOLUMN(nameVARCHAR2(25));
15、游标的哪一种属性指示fetch语句是否从活动集中返回行,如未能返回行,则此属性的值为false?
A)%FOUND
B)%NOTFOUND
C)%ROWCOUNT
D)%ISOPEN
16.判断下面句子,将返回什么值?
SELECTid_number,description,priceFROMinventory
WHEREmanufacturer_idIN(SELECTmanufacturer_idFROMinventoryWHEREprice>
8.00ORquantity>
1000);
A.返回单价大于8.00且数量大于1000的存货的货号、种类、单价信息
B.返回单价大于8.00或者数量大于1000的存货的货号、种类、单价信息.
C.返回单价大于8.00或者数量大于1000且有制造商号的存货的货号、种类、单价信息.
D.返回单价大于8.00或者数量大于1000的制造商的所有存货的货号、种类、单价信息.
17.判断IF语句:
IFv_num>
1THEN
v_example:
=1;
ELSIFv_num>
5THEN
=2;
ELSIFv_num<
10THEN
=3;
29THEN
=4;
ELSEv_example:
=5;
如果V_NUM是6,什么值将被赋值给V_EXAMPLE?
A.1
B.2
C.3
D.4
18.哪一个是SQL*Plus命令?
A.UPDATE
B.PROMPT
C.SELECT
D.ALTERTABLE
19、下列哪个集合操作符返回两个查询都有的行。
A)Union
B)Unionall
C)Uniononly
D)Intersect
20.判断下面不完整的loop语句:
LOOP
INSERTINTOinventory(id_number,description)
VALUES(v_id_number,v_description);
v_counter:
=v_counter+1;
哪条命令应被加入,为了有条件的停止loop执行?
A.END
B.EXIT
C.ENDLOOP
D.EXITWHEN
21.在PL/SQL块的哪部分可以对初始变量赋予新值?
A.结尾部分
B.开头部分
C.执行部分
D.声明部分
23.数据字典视图USER_TABLES和ALL_TABLES有什么不同?
A.ALL_TABLES只显示用户拥有的表.
B.USER_TABLES只显示用户拥有的表.
C.ALL_TABLES只显示用户拥有查询权限的表.
D.USER_TABLES显示用户拥有查询权限的所有表.
24.哪一句可列出表PARTS_VU的结构?
A.DESCRIBEparts_vu
B.DESCRIBEuser_views
C.SELECT*FROMuser_viewsWHERElower(view)=parts_vu;
D.SELECT*FROMuser_objectsWHERElower(user_view)=parts_vu;
25、在执行循环之前迭代次数是已知的,则最好使用下列的哪种循环?
A)while
B)do
C)loop
D)for
26.考虑下列声明,那些是不合法的:
(选择3项)
A.DECLAREv_name,v_deptVARCHAR2(14);
B.DECLAREv_testNUMBER(5);
C.DECLAREV_MAXSALARYNUMBER(7,2)=5000;
D.DECLAREV_JOINDATEBOOLEAN:
=SYSDATE;
27.EMPLOYEES表如下:
LAST_NAMEDEPARTMENT_IDSALARY
Getz103000
Davis201500
King202200
Davis305000…
请根据表判断以下哪些SQL语句正确:
A.SELECT*FROMemployees
WHEREsalary>
(SELECTMIN(salary)FROMemployeesGROUPBYdepartment_id);
B.SELECT*FROMemployees
WHEREsalary=(SELECTAVG(salary)FROMemployeesGROUPBYdepartment_id);
C.SELECTDISTINCTdepartment_idFROMemployees
ANY(SELECTAVG(salaryFROMemployeesGROUPBYdepartment_id));
D.SELECTdepartment_idFROMemployees
ALL(SELECTAVG(salary)FROMemployeesGROUPBYAVG(salary));
28.EMPLOYEES表结构如下:
EMPLOYEE_IDNUMBERNOTNULL,PRIMARYKEY
LAST_NAMEVARCHAR2(30)
FIRST_NAMEVARCHAR2(30)
JOB_IDNUMBER
SALNUMBER
MGR_ID字段的数据类型为NUMBER,参照EMPLOYEE_ID列和DEPARTMENT_ID列(NUMBER)。
现在需要在FIRST_NAME和LAST_NMAE字段上建立名为NAME_IDX的索引,下列哪个SQL语句能执行这项任务:
A.CREATEINDEXNAME_IDX(first_name,last_name);
B.CREATEINDEXNAME_IDX(first_nameANDlast_name);
C.CREATEINDEXNAME_IDXONemployees(first_name,last_name);
D.CREATEINDEXNAME_IDXFORemployees(first_name,last_name);
29.Oracle会为下列哪些约束自动建立索引:
A.Check
B.Unique
C.Primarykey
D.Foreignkey
41.表(TEACHER)包含以下列:
IDNUMBER(7)PK
SALARYNUMBER(7,2)
SUBJECT_IDNUMBER(7)
判断以下两个SQL语句:
(1)SELECTROUND(SUM(salary),-2)FROMteach