oracle面试测试题.docx

上传人:b****5 文档编号:11796939 上传时间:2023-04-02 格式:DOCX 页数:21 大小:25.94KB
下载 相关 举报
oracle面试测试题.docx_第1页
第1页 / 共21页
oracle面试测试题.docx_第2页
第2页 / 共21页
oracle面试测试题.docx_第3页
第3页 / 共21页
oracle面试测试题.docx_第4页
第4页 / 共21页
oracle面试测试题.docx_第5页
第5页 / 共21页
点击查看更多>>
下载资源
资源描述

oracle面试测试题.docx

《oracle面试测试题.docx》由会员分享,可在线阅读,更多相关《oracle面试测试题.docx(21页珍藏版)》请在冰豆网上搜索。

oracle面试测试题.docx

oracle面试测试题

典型oracle面试题

一:

sql题

1、假设学校环境如下:

一个系有若干个专业,每个专业一年只招一个班,每个班有若干个学生。

现要建立关于系、学生、班级的数据库,关系模式如下:

班级表class(班号classid,专业名subject,系名deptname,入学年份entertime,人数num)

学生表student(学号studentid,姓名name,年龄age,班号classid)

系department(系号departmentid,系名deptname)

要求用sql语句完成如下功能:

(1)建表,并实现如下要求

A:

每个表根据实际定义好主外键关系

B:

系表中编号字段利用数据库自动化增长值实现

C:

每个班级的人数不超过30人

D:

学生年龄介于15到30之间

E:

学生姓名不能为空,系名不能重复

(2)输入部分测试数据

department表:

1数学

2计算机

3化学

4中文

5经济学

class表:

101软件计算机199520

102微电子计算机199630

111无机化学化学199529

112高分子化学化学199625

121统计数学199520

131现代语言中文199620

141国际贸易经济学199730

142国际金融经济学199814

student表:

8101张三18101

8102钱四16121

8103王玲17131

8104李飞19102

8105王五20141

(3)完成下列查询:

A:

列出所有人数大于等于28的系的编号和名称

B:

列出所有开设超过两个专业的系的名字

C:

显示每个学生的学号、姓名、专业、系名信息

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)包含以下列:

(选择1项)

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<5.00

C.ORDERBYprice<5.00

D.GROUPBYprice<5.00

4.判断下面句子:

(选择1项)

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代码块:

(选择1项)

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值不符合约束,错误信息将返回,判断下面命令:

(选择1项)

ALTERTABLEinventoryENABLECONSTRAINTinventory_id_pk;

哪种说法正确?

A.将得到想要的结果.

B.语句执行,但不能激活约束.

C.语句执行,但不能校验ID是否违反约束.

C.将返回语法错误.

7.表CLASSES和表SCHEDULE结构如下:

CLASSES:

IDNUMBER(9)

CLASS_NAMEVARCHAR2(20)

TEACHER_IDNUMBER(9)

SCHEDULE:

CLASS_TIMEDATE

CLASS_IDNUMBER(9)

你建一个视图显示每一课的课名、课时,并按教师ID排序,判断下面语句将返回何种结果?

(选择1项)

CREATEVIEWclass_scheduleAS

SELECTC.class_name,s.class_timeFROMclassesc,schedulesWHEREC.id=s.class_id;

A.语句创建视图CLASS_SCHEDULE且可产生预期结果.

B.语句创建视图CLASS_SCHEDULE但不能产生预期结果.

C.语法错误,因为视图不可基于连接查询.

D.语法错,因为语句未包含ORDERBY子句.

 

8.判断是否同时满足两个条件,应该用下面哪个操作符?

(选择1项)

A.OR

B.NOT

C.AND

D.None

9.哪一个算术运算将返回一个数值?

(选择1项)

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不用指定其属主,直接供所有用户引用?

(选择1项)

A.CREATESYNONYMinventoryFORinventory;

B.CREATEPUBLICSYNONYMinventoryFORmarilyn;

C.CREATEPUBLICSYNONYMinventoryFORmarilyn.inventory;

D.CREATEPUBLICinventorySYNONYMFORmarilyn.inventory;

 

11.在一个PL/SQLIF-THEN语句中,什么值将引起条件语句执行?

(选择1项)

A.NULL

B.TRUE

C.FALSE

D.以上都不对

 

12.哪句可以实现显示id和description,条件满足订单时间在January1,1997以前的,且单价小于1.00或者大于5.00的,结果用订单时间降序排列。

(选择1项)

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<'01-JAN-1997'

ORDERBYorder_dateDESC;

 

13.哪一个命令允许你直接修改一个已存在的视图?

(选择1项)

A.ALTER

B.CREATE

C.MODIFY

D.CREATEORREPLACE

 

14.哪一语句可实现增加表employee的列NAME的长度到25?

(选择1项)

A.ALTERTABLEemployeeMODIFYnameVARCHAR2(25);

B.ALTERTABLEemployeeRENAMEnameVARCHAR2(25);

C.ALTERemployeeTABLEMODIFYCOLUMNnameVARCHAR2(25);

D.ALTERemployeeTABLEMODIFYCOLUMN(nameVARCHAR2(25));

 

15、游标的哪一种属性指示fetch语句是否从活动集中返回行,如未能返回行,则此属性的值为false?

(选择1项)

A)%FOUND

B)%NOTFOUND

C)%ROWCOUNT

D)%ISOPEN

 

16.判断下面句子,将返回什么值?

(选择1项)

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

v_example:

=2;

ELSIFv_num<10THEN

v_example:

=3;

ELSIFv_num<29THEN

v_example:

=4;

ELSEv_example:

=5;

ENDIF;

如果V_NUM是6,什么值将被赋值给V_EXAMPLE?

(选择1项)

A.1

B.2

C.3

D.4

 

18.哪一个是SQL*Plus命令?

(选择1项)

A.UPDATE

B.PROMPT

C.SELECT

D.ALTERTABLE

19、下列哪个集合操作符返回两个查询都有的行。

(选择1项)

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执行?

(选择1项)

A.END

B.EXIT

C.ENDLOOP

D.EXITWHEN

 

21.在PL/SQL块的哪部分可以对初始变量赋予新值?

(选择1项)

A.结尾部分

B.开头部分

C.执行部分

D.声明部分

 

23.数据字典视图USER_TABLES和ALL_TABLES有什么不同?

(选择1项)

A.ALL_TABLES只显示用户拥有的表.

B.USER_TABLES只显示用户拥有的表.

C.ALL_TABLES只显示用户拥有查询权限的表.

D.USER_TABLES显示用户拥有查询权限的所有表.

 

24.哪一句可列出表PARTS_VU的结构?

(选择1项)

A.DESCRIBEparts_vu

B.DESCRIBEuser_views

C.SELECT*FROMuser_viewsWHERElower(view)=parts_vu;

D.SELECT*FROMuser_objectsWHERElower(user_view)=parts_vu;

25、在执行循环之前迭代次数是已知的,则最好使用下列的哪种循环?

(选择1项)

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语句正确:

(选择1项)

A.SELECT*FROMemployees

WHEREsalary>(SELECTMIN(salary)FROMemployeesGROUPBYdepartment_id);

B.SELECT*FROMemployees

WHEREsalary=(SELECTAVG(salary)FROMemployeesGROUPBYdepartment_id);

C.SELECTDISTINCTdepartment_idFROMemployees

WHEREsalary>ANY(SELECTAVG(salaryFROMemployeesGROUPBYdepartment_id));

D.SELECTdepartment_idFROMemployees

WHEREsalary>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语句能执行这项任务:

(选择1项)

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会为下列哪些约束自动建立索引:

(选择1项)

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

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 解决方案

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1