数据库开发工程师笔试题.docx
数据库开发工程师笔试题1 .根据下面表格数据设计数据库表。组合代码证券代码证券名称证券类型日期当日日收益率(默认为0)1000l0002万科股票2014-09-300.005233311000211208211赤湾Ol债券2014-09-300.002222222 .请根据下面表格A和B查出组合的转移日期的基金净值,如果转移日期为空,取开始投资日期当天基金净值;表A:表B:组合代码开始投资日期是否转移转移日期10000012014-09-30否10000022013-05-01是2014-06-30组合代码日期基金净值10000012014-09-30506000.2210000022013-05-0120000010000022014-06-30240000223 .根据左边的表,得到右边表的结果纨合代码证券类型收益率()1000001股票201000001债券151000002股票-51000002债券30组合代码股票收益率()债券收益率()1000001201510002-530Select组合代码,SUm(CIeCOde(证券类型;股票。收益率,null),SUm(decode(证券类型;债券。收益率,null)FromDual;4 .根据下面表格数据,查出组合代码、证券代码、证券名称、证券类型、当日收益率、证券在同一组合中的收益率排名和参与排名的品种数量、组合各种证券类型分别持有证券品种数量。组合代码证券代码证券名称证券类型日期当日日收益率(默认为0)10000010002万科股票2014-09-300.00523331100000211208211赤湾01债券2014-09-300.0022222210002600138中青旅股票2014-09-300.0062333110001600138中青旅股票2014-09-300.1233311000002(XX)2万科股票2014-09-300.00823331100000111208211赤湾Ol债券2014-09-300.002222221000111204411中泰01债券2014-09-300.00923331Selectt.p_code,t.p_name,t.o_name,a.scjzrsyl,t.i_code,Count(distinctt.i_code)Over(PartitionByt.p_code,t.o_name)pzsl,一组合所有类型对应证券品种数量dense_rank()Over(Partitionbyt.p_codeOrderBya.scjzrsyldesc)sylph-收益率排行Fromtdaily_detailt,tready_yield_dataaWheret.p_code=a.p_codeAndt.beg_date=a.beg_dateANdt.end_date=a.end_date5 .某表C中字段o_body为Xml类型(格式如下所示),请查出Bdate为2013-01-01,FTyPe为0,AimExpression为ptm的所有数据。(InvestmentComPlianCeFType="O"Balance="4"><AimE×pression>ptm<AimExpression>RelateEXPreSSiOnS>VRelateExpressionsBdate="2013-01-01"E×pression="60"EXPreSSiOnCode="60"TriggerDate="1"RelateSort="0"ReIateCount="1"><RelateE×pressionS><SubFilters><lnvestmentCompliance>Selectextractvalue(xmltype(a.abs_bench),/RelateExpressionS')Rateextractvalue(xmltype(c.abs_bench),/Bdate')bdate,extractvalue(xmltype(c.abs_bench)z'/FType')ftype,extractvalue(xmltype(c.abs_bench),/AimExpression,)aimFromC;PJDP.NAMEP-PAREWHd6.根据左表数据得到右表的数据P-IDPJttPJ>ARB,ID23按计划分组2224仙计划2325河北中烟工业公司2427红河烟草2428红河烟草国寿养老2729淮南矿业2430淮南矿业海南通2931淮南炉业甯方2932淮南犷业易方达2933淮南万业华夏2934淮南矿业平安养老2935淮阳发电有限责任公司2436淮阴发电有限责任公司3525河北中姻工业公司2428红河烟草国寿养老2730淮南矿业海商通2931淮由IT业南方2932淮南犷业易方达2933淮南矿业华夏2934淮南苗业平安养老2936淮阴发电有限出任公司35Selectt.code,t.parentcodefromvrisk_grouptstartWitht.code>0ConnectBypriort.code=t.parentcode;7 .有如下结构的表A,100OW条数据,表B数据量只有100条,执行SqIA的时候会很慢,如何优化?证券代码开始日期结束日期证券类型其他列1其他列2022013-01-012014-09-30股票OooOO22014-09302014-10-08股票0000022014-1008205042-31股票0000032013-01-012014-09-30股票Ooooo32014-09>302050-12-31股票sqlA:SELECTB.组合代码,B.证券代码,A.证券类型FROMA,BWHEREA.证券代码:B.证券代码ANDA.开始日期='2014-09-30'ANDA结束日期'2014-09-30'8 .请简述一下数据库设计应该注意哪些事项。