导航:首页 > 面试求职 > oracle面试题300题

oracle面试题300题

发布时间:2021-01-18 12:07:17

㈠ oracle数据库面试题,如下,求解!

1
proct主键id
顾客表主键acid
商品交易表为联合主键(acid+id),同时acid和id分别是顾客表和商品表的外键

2
selectb.acname,b.acadress
fromprocta,customerb,ordercwherea.id=c.idandb.acid=c.acid
anda.name='李子'

3
selectt1.acname
from
(selectb.acname
fromprocta,customerb,ordercwherea.id=c.idandb.acid=c.acid
anda.name='李子')t1,
(selectb.acname
fromprocta,customerb,ordercwherea.id=c.idandb.acid=c.acid
anda.name='苹果')t2
wheret1.acname=t2.acname4
selectb.acname,
sum(casewhentype='家电'thena.price*c.amountelse0end)as家电价格,
sum(casewhentype='水果'thena.price*c.amountelse0end)as水果价格
fromprocta,customerb,ordercwherea.id=c.idandb.acid=c.acid
groupbyb.acname

㈡ 某银行的Oracle面试题,请教大神。

不对复.
第一句SQL,作为主表的 f 和作为从制表的 g ,他们的关联关系是 f.orderid = g.rferenceid,而从表中又使用了 paymentype = '1'

而如果要改成第二句的形式的话,需要这样(只需改楼主提供的SQL的最后两个关联条件):
and g.paymentype(+) = '1'
and a.orderid = g.rferenceid(+)

㈢ 面试题:oracle数据库优化

oracle数据库优化的话主要有以下几个方面(我接触过的,可能不全面):回
1 查询语句的答优化,这个主要是根据语句和数据库索引的情况,结合查询计划的分析结果,对性能较低的查询语句进行重写,在执行查询前执行表分析语句也可以算这里;
2 数据结构优化,这个包括根据实际的应用中业务逻辑,对数据库的结构进行重新设计,或者创建相关索引里提高查询效率;
3 数据库设置优化,这方面主要是调整数据库和数据结构的相关参数提高应用访问系统的效率;
4 存储结构优化,在数据量较大的情况下,可以考虑通过数据库的存储结构进行优化,比如对数据进行partition,将数据存储在磁盘阵列服务器上等。
我的经验有限,以上是部分建议

㈣ oracle sql面试题求助

--把这两个表id查出来来组成一个记录源集select
id
from
emp1
union
all
select
id
from
sext
------------------id1234145--上面的记录集取别名为t
根据这个t
的id等于emp1的id的条件查出t中记录数小于2的emp1记录select
*
from
emp1
e
where
(select
count(*)from
(select
id
from
emp1
union
all
select
id
from
sext)
twhere
t.id
=
e.id)
<
2---------------------------id
name2
b3
c
希望对你能有所帮助。

㈤ oracle面试题

create table scores (id integer,score integer);
1.随机生成100个人的成绩
begin
for i in 1 .. 100 loop
insert into scores select trunc(dbms_random.value(0,100),0),trunc(dbms_random.value(0,100),0) from al;
end loop;
end;
/
2.统计出100-86为优秀、85到60为及格版,权59-0为不及格的人数
select
(select count(*) from scores where score between 86 and 100) "youxiu",
(select count(*) from scores where score between 60 and 85) "jige",
(select count(*) from scores where score between 0 and 59) "bujige"
from al;

㈥ oracle面试题:在一个上亿条数据的表中,批量插入大量数据,并根据内容重新定义索引,怎么做最有效率

为大表添加新的分区,向新分区中导入数据,然后创建本地分区索引。如果大表本版身有分区索引,先权让索引在新的分区上失效,imp命令中添加skip_unusable_indexes=y参数,数据导入后再rebuild分区索引即可。

㈦ oracle面试题

3.select ename,(select ename from emp where empno in(a.mgr)) from emp a ;
整个查询分为子查询和父查询,(select ename from emp where empno in(a.mgr))为子查询,emp a指的是员工表,a为这个查询为emp表指定的别名,知道了a
代表什么,a.mgr就好理解了,a.mgr其实就是emp.mgr,表示emp员工表中的mgr(上级编号)字段,emp表中记录了员工及员工上级的信息,a.mgr就用来指明员工
的上级的编号,然后输出员工姓名及他上级姓名。
6.虽然dname和ename在不同的两张表中,但是通过语句where deptno in(a.deptno)将两张表的信息关联上了,这样就能得到员工姓名及该员工所在的部门名称。
14.a.deptno,b.deptno分别代表部门表中的部门编号字段和员工表中的部门编号字段,它们的作用是将独立的部门表和员工表中的信息关联起来,令两个表的信息
一一对应起来,emp b用来输出ename,sal字段,b为emp表在查询中的别名,可以任意命名,因为a这个名称已经赋予给dept这个表,若再将a赋予emp表,则会造成
数据库无法识别a代表的是dept表还是emp表,所以此处命名为b而不是a。
16.group by有分类作用,此处表示,安装job的类型将查询结果分为几类,每一类工作中包含很多不同的工资,然后用min函数从里面选出最小的工资,当需要对
查询结果进行聚合时,便可使用group by语句,其后紧跟聚合函数外的所有字段,比如此处的job字段。

㈧ Oracle 存储过程面试题

根据你现有的内容,做个完全同步的
merge into frp.t17_organ d
using frp.t40_organ s
on (s.organno=d.organno)
when matched then update set d.organname=s.organname,.....
when not matched then insert values (s.organno.........)

完整题目可以专发我属私信

㈨ oracle sql 语句 面试题

(1)统计有学生选修的课程门数
select count(distinct c#) from SC

2)求选修C4课程的女学生的平均年龄
select avg(s.age) --最好都带上前缀,养成好习惯
from s,c,sc where s.s#=sc.s# and c.c#=sc.c#
and c.cname='C4' and s.sex='女'--字符类型带引号,必须注意大小写,你那么写好麻烦

3)求刘老师所授的课程的每门课程的平均成绩
select c.cname , avg(grade) from sc , c
where c.teacher =' liu' and sc.c# = c.c#
group by c.cname --select后是什么字段,这地方你也得最少有这个字段

(4)统计每门课程的学生选修人数(超过10人的课程才统计)。要求显示课程号和人数,查询结果按人数降序排列,若人数相同,按课程号升序排列。

select t.*
from
(select sc.c#, count(s#) counnt_s from s,sc where s.s# = sc.s# group by sc.c# having count(s#) >10) t
order by counnt_s desc,c# asc --你排序不对,另外oracle不可根据别名排序,只可再做嵌套

5)检索学号比王军同学大,而年龄比他小的学生姓名
select a.s#
from
(select s# from s where s#>(select s# from s where sname='王军') a,
select s# from s where age>(select age from s where sname='王军') b
where a.s#=b.s#

6)求年龄大于女同学平均年龄的男学生的姓名和年龄

select sname,age from s
where age>
(select avg(age) from s where sex = 'nv') and sex = 'nan' --没问题

7)求年龄大于所有女同学年龄的男学生的姓名和年龄
select sname ,age from s
where age>(select max(age) from s where sex = 'nv') and sex = 'nan' --没问题

㈩ java,oracle面试题,如下,sql怎么写

如题我先进行分析:

  1. 第一句话中按月找出平均 填写时间大于3天的人员信息 :

    那么可用理解为 根据月份查找 员工平均延迟填写日期大于3天的 人员信息。

  2. 第二句话一个人员的日志填写日期有多条则取最早的一条,如果有一天未填写,则取系统当前时间,不含小时。

    以上这句话需要注意两点 第一点,取最早的一条此处需要用到ROW_NUMBER() OVER() 以及未填写 则取系统当前时间 不含小时 那么取值格式应为yyyy-mm-dd此处需要处理格式。

根据以上分析提供如下SQL: 注:(以下SQL已ORACLE为例)

--创建临时表存储数据
withemp_logas(
select1asempno,'张一'asempname,'工作内容1'asworkcontent,date'2017-03-20'asbegdate,date'2017-03-23'asentrydate,1asnumfromal
unionall
select1asempno,'张一'asempname,'工作内容2'asworkcontent,date'2017-03-20'asbegdate,date'2017-03-23'asentrydate,2asnumfromal
unionall
select1asempno,'张一'asempname,'工作内容3'asworkcontent,date'2017-03-20'asbegdate,date'2017-03-24'asentrydate,5asnumfromal
unionall
select1asempno,'张一'asempname,'工作内容1'asworkcontent,date'2017-03-24'asbegdate,date'2017-03-30'asentrydate,8asnumfromal
unionall
select2asempno,'张二'asempname,'工作内容21'asworkcontent,date'2017-03-20'asbegdate,date'2017-03-30'asentrydate,8asnumfromal
unionall
select2asempno,'张二'asempname,'工作内容22'asworkcontent,date'2017-03-25'asbegdate,date'2017-03-28'asentrydate,8asnumfromal
unionall
select3asempno,'张三'asempname,'工作内容31'asworkcontent,date'2017-03-20'asbegdate,nullasentrydate,nullasnumfromal
unionall
select3asempno,'张三'asempname,'工作内容32'asworkcontent,date'2017-03-20'asbegdate,nullasentrydate,nullasnumfromal
unionall
select4asempno,'张四'asempname,'工作内容42'asworkcontent,date'2017-03-25'asbegdate,date'2017-03-28'asentrydate,8asnumfromal
)
select*from(
selectempno,empname,sum(num)num,sum(yanci)/count(empno)pingjunyanci--获取人员当月总延迟数除去当月人员每日的打开数计算出当月每天的平均延迟天数
from(selectROW_NUMBER()OVER(PARTITIONBYe.empno,e.begdateORDERBYe.empno,e.begdate)ASRN,--排序获取当天有多条记录并在后面条件中获取第一条
e.empno,e.empname,
e.workcontent,e.begdate,
e.entrydate,
e.num,
(nvl(e.entrydate,to_date(to_char(sysdate,'yyyy-mm-dd'),'yyyy-mm-dd'))-begdate)asyanci--判断如果没有填写结束日期那么以系统当前日期进行运算延迟日期
fromemp_loge)e1
wheree1.rn=1--获取第一条
andto_char(begdate,'yyyy-mm')='2017-03'--可用的月份条件
groupbyempno,empname,numorderbyempno--根据人员工号、人员姓名分组汇总
)e2wheree2.pingjunyanci>3;

--分析不易忘认真阅读后采纳,有其他问题请追问我。
阅读全文

与oracle面试题300题相关的资料

热点内容
晋升考核自我评价 浏览:480
职场新人自我介绍日语 浏览:700
职携求职公寓 浏览:354
醉驾人找工作 浏览:973
百度厦门六中艺术特长报名表 浏览:868
劲霸经编面试 浏览:364
小孩综合素质自我评价 浏览:470
玉环学校洗碗招聘信息 浏览:15
教师教育自我评价 浏览:192
2014合肥168中学特长生音乐录取名单 浏览:478
应届生面试自我介绍范文3分钟 浏览:800
丹阳人才招聘网 浏览:72
生物学科特长怎么写 浏览:250
昌硕面试后多久通知 浏览:925
陕西省铁饼特长生 浏览:751
硕展科技有限公司招聘 浏览:346
2019年南阳卷烟厂招聘信息 浏览:461
时尚招聘信息 浏览:341
安吉洁美电子招聘信息 浏览:106
个人简历问候语 浏览:924