oracle数据库笔试.docx
《oracle数据库笔试.docx》由会员分享,可在线阅读,更多相关《oracle数据库笔试.docx(10页珍藏版)》请在冰豆网上搜索。
oracle数据库笔试
竭诚为您提供优质文档/双击可除
oracle数据库,笔试
篇一:
oracle数据库笔试试题总结
oracle数据库1.基础测试
选择在部门30中员工的所有信息select*fromempwheredeptno=30;
列出职位为(manageR)的员工的编号,姓名
selectempno,enamefromempwherejob=manager;找出奖金高于工资的员工
select*fromempwherecomm>sal;找出每个员工奖金和工资的总和selectsal+comm,enamefromemp;
找出部门10中的经理(manageR)和部门20中的普通员工(cleRk)
select*fromempwhere(deptno=10andjob=manageR)or(deptno=20andjob=cleRk);
找出部门10中既不是经理也不是普通员工,而且工资大于等于2000的员工select*fromempwheredeptno=10andjobnotin(manageR,cleRk)andsal>=2000;
找出有奖金的员工的不同工作
selectdistinctjobfromempwherecommisnotnullandcomm>0找出没有奖金或者奖金低于500的员工
select*fromempwherecomm 找出每个月倒数第三天受雇的员工(如:
20xx-5-29)select*fromempwherelast_day(hiredate)-2=hiredate;找出25年前雇的员工
select*fromempwherehiredate 所有员工名字前加上dear,并且名字首字母大写selectdear||initcap(ename)fromemp;找出姓名为5个字母的员工
select*fromempwherelength(ename)=5;找出姓名中不带R这个字母的员工
select*fromempwhereenamenotlike%R%;显示所有员工的姓名的第一个字selectsubstr(ename,0,1)fromemp;
显示所有员工,按名字降序排列,若相同,则按工资升序排序假设一个月为30天,找出所有员工的日薪,不计小数找到2月份受雇的员工
select*fromempwhereto_char(hiredate,fmmm)=2;3.分组函数
分组统计各部门下工资>500的员工的平均工资、
selectavg(sal)fromempwheresal>500groupbydeptno;统计各部门下平均工资大于500的部门
selectdeptno,avg(sal)fromempgroupbydeptnohavingavg(sal)>500;算出部门30中得到最多奖金的员工奖金
selectmax(comm)fromempwheredeptno=30;算出部门30中得到最多奖金的员工姓名
selectenamefromempwherecomm=(selectmax(comm)fromempwheredeptno=30);
算出每个职位的员工数和最低工资
selectjob,min(sal),count(*)fromempgroupbyjob;列出员工表中每个部门的员工数,和部门noselectcount(*),deptnofromempgroupbydeptno;
得到工资大于自己部门平均工资的员工信息
select*fromempe1,(selectdeptno,avg(sal)asavgsalfromempgroupbydeptno)e2
wheree1.deptno=e2.deptnoande1.sal>e2.avgsal;
分组统计每个部门下,每种职位的平均奖金(也要算没奖金的人)和总工资(包括奖金)selectdeptno,job,avg(nvl(comm,0)),sum(sal+nvl(comm,0))fromempgroupbydeptno,job;4.多表联查
列出员工表中每个部门的员工数,和部门noselectdeptno,count(*)fromempgroupbydeptno;
列出员工表中每个部门的员工数(员工数必须大于3),和部门名称
selectd.*,ed.coufromdeptd,(selectdeptno,count(*)coufromempgroupbydeptnohavingcount(*)>3)edwhered.deptno=ed.deptno;找出工资比jones多的员工
select*fromempwheresal>=(selectsalfromempwherelower(ename)=jones);
列出所有员工的姓名和其上级的姓名
selecte1.enameaslower,e2.enameasupperfromempe1,empe2wheree1.mgr=e2.empno;
selecte1.enameaslower,e2.enameasupperfromempe1,empe2wheree1.mgr=e2.empno(+);
以职位分组,找出平均工资最高的两种职位
select*from(selectavg(sal)fromemporderbyjobdesc)whererownum(selectmax(sal)from
empwheredeptno=20)ande.deptno=d.deptno
得到平均工资大于2000的工作职种
selectjobfromempgroupbyjobhavingavg(sal)>2000;
分部门得到工资大于2000的所有员工的平均工资,并且平均工资还要大于2500selectdeptno,avg(sal)fromempwheresal>2000groupbydeptnohavingavg(sal)>2500;
得到每个月工资总数最少的那个部门的部门编号,部门名称,部门位置select*fromdeptwheredeptno=(
selecte.deptnofrom
(selectdeptno,sum(sal)fromempgroupbydeptnoorderbysum(sal))e
whererownum=1);
篇二:
oracle笔试题目带答案
1.()程序包用于读写操作系统文本文件。
(选一项)
a、dbms_output
b、dbms_lob
c、dbms_random
d、utl_file
2.()触发器允许触发操作的语句访问行的列值。
(选一项)
a、行级
b、语句级
c、模式
d、数据库级
3.()是oracle在启动期间用来标识物理文件和数据文件的二进制文件。
(选一项)
a、控制文件
b、参数文件
c、数据文件
d、可执行文件
4.cReatetable语句用来创建(选一项)
a、表
b、视图
c、用户
d、函数
5.imp命令的哪个参数用于确定是否要倒入整个导出文件。
(选一项)
a、constranints
b、tables
c、full
d、file
6.oRacle表达式nVl(phone,0000-0000)的含义是(选一项)
a、当phone为字符串0000-0000时显示空值
b、当phone为空值时显示0000-0000
c、判断phone和字符串0000-0000是否相等
d、将phone的全部内容替换为0000-0000
7.oRacle交集运算符是(选一项)
a、intersect
b、union
c、set
d、minus
8.oRacle使用哪个系统参数设置日期的格式(选一项)
a、nls_language
b、nls_date
c、nls_time_zone
d、nls_date_format
9.oracle数据库中,通过()访问能够以最快的方式访问表中的一行(选一项)
a、主键
b、Rowid
c、唯一索引
d、整表扫描
10.oracle数据库中,下面()可以作为有效的列名。
(选一项)
a、column
b、123_num
c、num_#123
d、#num123
11.oracle数据库中,以下()命令可以删除整个表中的数据,并且无法回滚(选一项)
a、drop
b、delete
c、truncate
d、cascade
12.oracle中,()函数将char或varchar数据类型转换为date数据类型。
(选一项)
a、date
b、to_date
c、todate
d、ctodate
13.oRacle中,执行语句:
selectaddress1||,||address2||,||address2"address"FRomemploy;
将会返回()列(选一项)
a、0
b、1
c、2
d、3
14.oralce数据库中,以下()函数可以针对任意数据类型进行操作。
(选一项)
a、to_chaR
b、loweR
c、max
d、ceil
15.partitionbylist(msn_id)子句的含义是(选一项)
a、按msn_id列进行范围分区
b、按msn_id列进行列表分区
c、按msn_id列进行复合分区
d、按msn_id列进行散列分区
16.比较pagesize和linesize两个命令的特点,正确的是(选两项)
a、pagesize命令用于设置屏幕上每一页包含的行数
b、linesize命令用于设置屏幕上每一行的字符数
c、pagesize命令用于设置屏幕上每一行的字符数
d、linesize命令用于设置屏幕上每一页包含的行数
17.查询语句selectltRim(aaabaccaddefg,abc)FRomdual的返回结果是(选一项)
a、addefg
b、dde
c、ddefg
d、aabaccaddefg
18.带有()字句的select语句可以在表的一行或多行放置排他锁(选一项)
a、FoRinseRt
b、FoRupdate
c、FoRdelete
d、FoRReFResh
19.调用oRacle隐式游标的关键字是(选一项)
a、cuRsoR
b、sql
c、plsql
d、oRaclecuRsoR
20.关于oRacle锁的级别,说法正确的是(选一项)
a、RowshaRe是表级锁
b、一个会话对表加了shaRe锁,别的会话不能对该表加shaRe锁
c、一个会话对表加了shaRe锁,别的会话不能对该表进行修改
d、使用update语句修改记录,系统一定会添加RowshaRe锁
21.看下面代码,正确的是(选一项)
a、declaRedbms_output.put_line(定义部分);begin
dbms_output.put_line(语句部分);end;
b、beginnumnumbeR:
=100;dbms_output.put_line(num的值为:
||num);end;
c、declaRenumnumbeR:
=100;beginnum:
=num+num/2;
dbms_output.put_line(num的值为:
||num);end;
d、beginnumnumbeR:
=100;declaRenum:
=num+num/2;
dbms_output.put_line(num的值为:
||num);end;
22.可以使用下面的()个数据字典查看当前数据库的表空间情况。
(选一项)
a、dba_users
b、dba_tab_privs
c、dba_tablespaces
d、user_tab_privs
23.如果存储过程的参数类型为out,那么调用时传递的参数应该为(选一项)
a、常量
b、表达式
c、变量
d、都可以
24.如果希望更新oracle表authors中first_name列为非空,可以使用哪个语句(选一项)
a、altertableauthorsaddfirst_namenotnull
b、altertableauthorsmodifyfirst_namenotnull
c、altertableauthorsalterfirst_namenotnull
d、altertableauthorsdropfirst_namenotnull
25.如果希望执行某操作时,该操作不执行,而是执行另一个操作,那么可是使用什么方式来
完成(选一项)
a、before触发器
b、after触发器
c、insteadof触发器
d、undo触发器
26.使用desc命令不能显示表的()信息(选一项)
a、列名称
b、列长度
c、列是否为空
d、表中的记录数
27.数据字典在sga的哪一个组件中缓存(选一项)
a、数据库高速缓冲区
b、共享
c、pga
d、重做日志缓冲区
28.下列oRacle说法错误的是(选一项)
a、union集合运算中不会存在重复记录
b、unionall集合运算不会存在重复记录
c、inteRsect运算结果是两个结果集合中共同的部分
d、minus运算中不存在第二个集合的记录
29.下列不属于oRacle分析函数的是(选一项)
a、Row_numbeR
b、Rownum
c、Rank
d、dense_Rank
30.下列不属于oRacle逻辑结构的是(选一项)
a、区
b、段
c、数据文件
d、数据块
31.下列不属于oRacle游标属性的是(选一项)
a、isopen
b、exists
c、Found
d、Rowcount
32.下列关于oRacle的to_date函数和to_char函数,描述正确的是(选两项)
a、to_char函数的作业是将字符串数据转换为日期数据
b、to_date函数的作业是讲字符串转换为日期
c、to_char函数是将日期数据转换为字符数据
d、to_date函数是将日期数据转换为字符数据
33.下列哪个oRacle后台进程是数据写入进程(选一项)
a、dbwR
b、seRVicelog
c、lgwR
d、smon
34.下列哪个进程主要职责是监控服务器进程和注册数据服务。
(选一项)
a、smon
b、pmon
c、dbwR
d、lgwR
35.下列说法错误的是(选两项)
a、在pl/sql中使用表示不等于
b、在pl/sql中使用!
=表示不等于
c、在pl/sql中使用相等判断使用==
d、在pl/sql中赋值使用=
36.下列有关包的使用说法错误的是(选一项)
a、在不同的包内模块可以重名
b、包的私有过程不能被外部程序调用
c、包体中的全局过程和函数必须在包头部分说明
d、必须先创建包头,然后创建包体
篇三:
oracle笔试题及答案
一、选择题(每题1分)
1.oracle发出下列select语句:
sql>selecte.empno,e.ename,d.loc2fromempe,deptd
3wheree.deptno=d.deptno
4andsubstr(e.ename,1,1)=‘s’;
下列哪个语句是oracle数据库中可用的ansi兼容等价语句?
a.selectempno,ename,locfromempjoindeptonemp.deptno=dept.deptnowheresubstr(emp.ename,1,1)=‘s’;
b.selectempno,ename,locfromemp,deptonemp.deptno=dept.deptnowheresubstr(emp.ename,1,1)=‘s’;
c.selectempno,ename,locfromempjoindeptwhereemp.deptno=dept.deptnoandsubstr(emp.ename,1,1)=‘s’;
d.selectempno,ename,locfromempleftjoindeptonemp.deptno=dept.deptnoandsubstr(emp.ename,1,1)=‘s’;
2.你要对操纵oracle数据库中的数据。
下列哪个选项表示oracle中select语句的功能,
并且不需要使用子查询?
a.可以用select语句改变oracle中的数据b.可以用select语句删除oracle中的数据
c.可以用select语句和另一个表的内容生成一个表d.可以用select语句对表截断
3.oracle数据库中发出一个查询。
下列哪个选项不能查询对用户定义静态表达式执行数学
运算时的查询组件?
a.列子句b.表子句c.dual表d.where子句
4.你要操纵oracle数据,下列哪个不是sql命令?
a.select*fromdual;b.setdefine
c.updateempsetename=6543whereename=‘smitheRs’;d.createtableemployees(empidvarchar2(10)primarykey);
5.你要在oracle中定义sql查询。
下列哪个数据库对象不能直接从select语句中引用?
a.表b.序列c.索引d.视图
6.你要根据pRoduct_name列从pRoFits表查询中过滤返回的数据。
下列哪个子句包含相
应过滤条件的引用?
a.selectb.fromc.whered.having
7.下列代码显示了pRoFits表输出的局部:
pRoduct_namepRoduct_typeqtR_end_date------------baRneydollgasgRill
------------toyapp
------------
31-maR-20xx31-maR-20xx
pRoFit-------------6575430.301234023.88
penciloFFice30-jun-20xx34039.99
下列查询的where子句哪个能正确计算20xx年1月1日到6月1日六个月内销售的所有家电总利润?
a.whereproduct_name=‘gasgRill’andqtr_end_datebetween’01-jan-20xx’and‘01-jun-20xx’;
b.whereproeuct_type=‘appliance’andname=‘gas(oracle数据库,笔试)gRill’andqtr_end_date=’31-jan-20xx’or‘30-jun-20xx’;
c.whereproeuct_type=‘appliance’andqtr_end_datebetween’01-jan-20xx’and’01-jun-20xx;
d.whereproeuct_name=‘gasgRill’andqtr_end_date=’01-jan-20xx’or‘01-jun-20xx’;
用下列代码所示的内容回答后面八个问题:
empnoenamejobmgRhiRedate-------------------------7369simthcleRk7499allen7521waRd7566jones
salesmansalesmanmanageRsalesmanmanageRmanageRanalystpResidentsalesmancleRkcleRk
----7902769876987839769878397839756676987788769875667782
---------17-dec-8020-Feb-8122-Feb-8102-apR-8128-sep-8101-may-8109-jun-8119-apR-8217-noV-8108-set-8123-dec-8203-dec-8103-dec-8123-jan-82
sal----800160012502975125028502450300050001500110095030001300
comm----30050014000
deptno------2030302030301020xx30203020xx
7654maRtin7698blake7782778878397844
claRkscottkingtuRneR
7876adams7900james
7902FoRd7934milleR
analystcleRk
8.以下选项中哪个是下列查询返回的值:
selectsum(sal)+sum(comm)fromempwhere
job=‘analyst’orenamelike‘j%’a.6000b.9925c.9975d.null
9.以下选项中哪个是下列查询返回的值:
selectcount(mgr)fromempwheredeptno=10a.1b.2c.3d.null
10.以下选项中哪个是下列查询返回的值:
selectcount(*)fromempwheremgr=7700-2a.5b.6c.7d.nul
11.以下选项中哪个是下列sql命令产生的第三个员工:
selectename,salfromempwherejob=‘salesman’orderbyempnodesca.allenb.maRtinc.tuRneRd.waRd
12.以下选项中哪个是下列sql命令产生的第三个员工:
ename,salfromempwherejob=‘salesman’orderby1desc
a.allenb.maRtinc.tuRneRd.waRd
13.以下选项中哪个是发出下列查询后oracle返回的值:
selectsubstr(job,1,3)fromempwhereenamelikeupper(‘__ar%’)a.anab.clec.mand.sal
14.以下选项中哪个是发出下列查询后a.24b.25c.-24d.-25
15.以下选项中哪个是发出下列查询后oracle返回的值:
select*fromempwhere
hiredate>’23-jan-82’(选择两个答案)
a.adamsb.milleRc.scottd.smith
16.test表包含两个列,testcol