1、表:ta ble1(FId,F class,Fsco re),用最高效最简单的SQL列出各班成绩最高的列表,显示班级,成绩两个字段。
selec t fcl ass,m ax(fs core) from tabl e1 gr oup b y fcl ass,f id
2、有一个表t able1有两个字段FID,F no,字都非空,写一个SQL语句列出该表中一个FI D对应多个不同的Fn o的纪录。
类如:
101a1001
101a1001
102a1002
102a1003
103a1004
104a1005
104a1006
105a1007
105a1007
105a1007
结果:
102a1002
102a1003
104a1005
104a1006
sel ect t2.* f rom t able1 t1,table1 t2where t1.f id =t2.fi d and t1.f no <> t2.f no;
3、有员工表empin fo
(
sql触发器的使用Fem pno v archa r2(10) not null pk,
Femp namevarch ar2(20) no t nul l,
F age n umber notnull,
Fsa larynumbe r not null
);
假如数据量很大约1000万条;写一个你认为最高效的SQL,用一个SQ L计算以下四种人:
fsal ary>9999 a nd fa ge >35
f salar y>9999 and fage < 35
fsa lary<9999 andfage> 35
fsal ary <9999and f age < 35
每种员工的数量;
selec t sum(case when fsal ary > 9999 andfage> 35
then1
els e 0en d) as "fsa lary>9999_fage>35",
sum(c ase w hen f salar y > 9999 a nd fa ge <35
th en 1
else0
end) as"fsal ary>9999_f age<35",
s um(ca se wh en fs alary < 9999 an d fag e > 35
the n 1
e lse 0
end) as "fsala ry<9999_fa ge>35",
su m(cas e whe n fsa lary< 9999 and fage < 35
then 1
el se 0
end)as "f salar y<9999_fag e<35"
from empi nfo;
4、表A字段如下
month pers on in come
月份人员收入
要求用一个SQL语句(注意是一个)的处所有人(不区分人员)每个月及上月和下月的总收入
要求列表输出为
月份当月收入上月收入下月收入
MO NTHSPERSO N INC OME
-------------------- ----------200807 ma ntisX F 5000200806 ma ntisX F2
3500200806 m antis XF3 3000200805manti sXF12000200805 mant isXF6 2200200804 man tisXF7 1800200803 8m antis XF 4000200802 9manti sXF 420020080210man tisXF 3300200801 11m antis XF 4600200809 11mant isXF6800
11 ro ws se lecte d
sel ect m onths, max(inco mes), max(prev_month s), m ax(ne xt_mo nths)
from (sel ect m onths,
inc omes,
deco de(la g(mon ths)over(order by m onths),
to_char(add_month s(to_date(month s, 'y yyymm'), -1), 'yyyym m'),lag(i ncome s)
ov er(or der b y mon ths), 0) a s pre v_mon ths,decod e(lea d(mon ths)over(order by m onths), to_char(add_month s(to_date(month s, 'y yyymm'), 1), 'y yyymm'), l ead(i ncome s)
ov er(or der b y mon ths), 0) a s nex t_mon ths f rom (selec t mon ths,sum(i ncome) asincom es fr om agroup by m onths) aa) aaag roupby mo nths;
MONT HS MA X(INC OMES) MAX(PREV_MONTH S) MA X(NEX T_MON THS)---------------------- --------------------------------200801 4600 07500200802 7500 4600
4000200803 4000 7500 1800200804 1800 4000 4200200805 4200 1800 6500200806650042005000200807 5000 6500 0200809 6800 0 0
5,表B
C1 c2
2005-01-01 1
2005-01-01 3
2005-01-025
要求的处数据
2005-01-01 4
2005-01-025
合计 9
试用一个Sq l语句完成。
s elect nvl(to_ch ar(t02,'yy yy-mm-dd'),'合计'),sum(t01)fromtest
grou p byrollu p(t02)
6,数据库1,2,3 范式的概念与理解。
7,简述ora cle行触发器的变化表限制表的概念和使用限制,行触发器里面对这两个表有什么限制。
8、or acle临时表有几种。
临时表和普通表的主要区别有哪些,使用临时表的主要原因是什么?
9,怎么实现:使一个会话里面执行的多个过程函数或触发器里面都可以访问的全局变量的效果,并且要实现会话间隔离?
10,aa,bb表都有20个字段,且记录数量都很大,aa,bb表的X字段(非空)上有索引,
请用SQ L列出aa表里面存在的X在bb表不存在的X的值,请写出认为最快的语句,并解译原因。
11,简述SGA主要组成结构和用途?
12什么是分区表?简述范围分区和列表分区的区别,分区表的主要优势有哪些?13,背景:某数据运行在archi velog,且用rm an作过全备份和数据库的冷备份,
且所有的归档日志都有,现控制文件全部损坏,其他文件全部完好,请问该怎么恢复该数据库,说一两种方法。
14,用rma n写一个备份语句:备份表空间T SB,le vel 为2的增量备份。
15,有个表a(x n umber(20),y num ber(20))用最快速高效的SQL向该表插入从1开始的连续的1000万记录。
1、表:table1(FId,Fcla ss,Fs core),用最高效最简单的S QL列出各班成绩最高的列
表,显示班级,成绩两个字段。
2、有一个表ta ble1有两个字段F ID,Fn o,字都非空,写一个SQL语句列出该表中一个FID对应多个不同的Fno的纪录。
类如:
101a1001
101 a1001
102 a1002
102 a1003
103 a1004
104a1005
104 a1006
105 a1007
105 a1007
105 a1007
结果:
102a1002
102 a1003
104 a1005
104 a1006
3、有员工表empin fo
(
Fem pno v archa r2(10) not null pk,
Femp namevarch ar2(20) no t nul l,
F age n umber notnull,
Fsa larynumbe r not null
);
假如数据量很大约1000万条;写一个你认为最高效的SQL,用一个SQ L计算以下四种人:
fsal ary>9999 a nd fa ge >35
f salar y>9999 and fage < 35
fsa lary<9999and f age > 35
fsala ry<9999 an d fag e < 35
每种员工的数量;
4、表A字段如下
mon th pe rsonincom e
月份人员收入
要求用一个SQ L语句(注意是一个)的处所有人(不区分人员)每个月及上月和下月的总收入
要求列表输出为
月份当月收入上月收入下月收入
5,表B
C1 c2
2005-01-01 1
2005-01-01 3
2005-01-02 5
要求的处数据
2005-01-01 4
2005-01-02 5
合计 9
试用一个Sql语句完成。
6,数据库1,2,3范式的概念与理解。
7,简述oracl e行触发器的变化表限制表的概念和使用限制,行触发器里面对这两个表有什么限制。
8、orac le临时表有几种。
临时表和普通表的主要区别有哪些,使用临时表的主要原因是什么?
9,怎么实现:使一个会话里面执行的多个过程函数或触发器里面都可以访问的全局变量的效果,并且要实现会话间隔离?
10,aa,bb表都有20个字段,且记录数量都很大,aa,bb表的X字段(非空)上有索引,
请用SQL列出aa表里面存在的X在bb表不存在的X的值,请写出认为最快的语句,并解译原因。
11,简述SGA主要组成结构和用途?
12什么是分区表?简述范围分区和列表分区的区别,分区表的主要优势有哪些?13,背景:某数据运行在ar chive log,且用rman作过全备份和数据库的冷备份,且所有的归档日志都有,现控制文件全部损坏,其他文件全部完好,请问该怎么恢复该数据库,说一两种方法。
14,用rman写一个备份语句:备份表空间TSB,leve l 为2的增量备份。
15,有个表a(x numb er(20),y n umber(20))用最快速高效的SQL向该表插入从1开始的连续的1000万记录。
答案:
1、s elect Fcla ss,ma x(Fsc ore)fromtable1 gro up by Fcla ss
2、selec t * f rom t able1 wher e FID in (selec t FID from tabl e1 gr oup b y FID havi ng
(c ount(Disti nct F no))>=2)
3、sele ct su m(cas e whe n fsa lary>9999and f age>35 the n 1 e lse 0 end),
sum(case when fsal ary>9999 a nd fa ge<35 then 1 el se 0end),
sum(casewhenfsala ry<9999 an d fag e>35then1 els e 0 e nd),
sum(c ase w hen f salar y<9999 and fage<35 t hen 1 else 0 en d) fr om em pinfo
4、
Selec t (Se lectMonth From Tabl e Whe re Mo nth = To_C har(S ysdat e, 'm m'))月份,
(Selec t Sum(Inco me) F rom T ableWhere Mont h = T o_Cha r(Sys date, 'mm')) 当月收入, (Selec t Sum(Inco me) F rom T ableWhere To_N umber(Mont h) =
To_Nu mber(Extra ct(Mo nth F rom S ysdat e)) - 1) 上月收入,
(Sele ct Su m(Inc ome)FromTable Wher e To_Numbe r(Mon th) =
To_N umber(Extr act(M onthFromSysda te))+ 1)下月收入
FromDual
5、sel ect n vl(c1,'合计'),sum(c2)fromB gro up by roll up(c1)
6.
关系数据库设计之时是要遵守一定的规则的。尤其是数据库设计范式
简单介绍1NF(第一范式),2NF(第二范式),3NF(第三范式),
第一范式(1NF):在关系模式R中的每一个具体关系r中,如果每个属性值都是不可再分的最小数据单位,则称R是第一范式的关系。
例:如职工号,姓名,电话号码组成一个表(一个人可能有一个办公室电话和一个家里电话号码)规范成为1NF有三种方法:
一是重复存储职工号和姓名。这样,关键字只能是电话号码。
二是职工号为关键字,电话号码分为单位电话和住宅电话两个属性
三是职工号为关键字,但强制每条记录只能有一个电话号码。以上三个方法,第一种方法最不可取,按实际情况选取后两种情况。
第二范式(2NF):如果关系模式R(U,F)中的所有非主属性都完全依赖于任意一个候选关键字,则称关系R 是属于第二范式的。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论