这篇文章将为大家详细讲解有关oracle中sql试题有哪些,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

待验证1.创建一张学生信息表student_info,包含以下信息:学号、姓名、性别、生日、家庭住址、联系电话;创建一张学生成绩表student_score包含学号、学科、成绩。CREATETABLEstudent_info(IDINT,NAMEVARCHAR2(10),sexVARCHAR2(4),brithdayDATE,addressVARCHAR2(50),phoneINT);CREATETABLEstudent_score(IDINT,subjectVARCHAR2(20),scoreNUMBER(4,1));2、根据题目中的两张表,创建一张新表test,包含以下信息:学号,姓名,学科,成绩CREATETABLETESTASSELECTa.id,a.name,b.subject,b.scoreFROMstudent_infoa,student_scoreb;3、将根据字符查询转换后结果,规则为:'A'转换为'男','B'转换为'女',其他字符转换为‘未知’,试用一个SQL语句写出。INSERTINTOstudent_infoVALUES(1100,'aaa','A',to_date('1990/3/312:12:12','yyyy/mm/ddhh34:mi:ss'),'asdg',333);SELECTDECODE(sex,'A','男','B','女','其他')FROMstudent_info;4、提取题目1表中,学生张三的各科成绩,需要以下信息:学号、姓名、学科、成绩,且按成绩的降序排序。SELECTa.id,a.name,b.subject,b.scoreFROMstudent_infoa,student_scorebWHEREa.id=b.idANDa.name='张三'ORDERBYb.scoreDESC;5、题目1表中,按学生总成绩由高到低排名,如果成绩相同则排名一样,输出字段为:排名、学号、姓名、总成绩。SELECTdense_rank()OVER(ORDERBYsum(b.score)DESC)dense_rank,a.id,a.name,sum(b.score)totalFROMstudent_infoa,student_scorebWHEREa.id=b.idGROUPBYa.name,a.id①ROW_NUMBER:Row_number函数返回一个唯一的值,当碰到相同数据时,排名按照记录集中记录的顺序依次递增。②DENSE_RANK:Dense_rank函数返回一个唯一的值,除非当碰到相同数据时,此时所有相同数据的排名都是一样的。③RANK:Rank函数返回一个唯一的值,除非遇到相同的数据时,此时所有相同数据的排名是一样的,同时会在最后一条相同记录和下一条不同记录的排名之间空出排名。http://www.cnblogs.com/wuyisky/archive/2010/02/24/oracle_rank.html6.题目1中,假设学科包含'语文','英语','数学','地理',请按以下格式输出学生的成绩学号姓名语文英语数学地理总成绩xxxxxx70707070280SELECTA.ID,A.NAME,SUM(DECODE(B.SUBJECT,'语文',SCORE,NULL))AS语文,--这里没有单引号SUM(DECODE(B.SUBJECT,'数学',SCORE,NULL))AS数学,SUM(DECODE(B.SUBJECT,'英语',SCORE,NULL))AS英语,SUM(DECODE(B.SUBJECT,'地理',SCORE,NULL))AS地理,SUM(B.SCORE)TOTALFROMSTUDENT_INFOA,STUDENT_SCOREBWHEREA.ID=B.IDGROUPBYA.NAME,A.ID;http://blog.163.com/magicc_love/blog/static/185853662201371481247696/7、题目1表中,求出各个学科的平均成绩,要求降序排序SELECTb.subject,AVG(b.score)averageFROMstudent_infoa,student_scorebWHEREa.id=b.idGROUPBYb.subjectORDERBYaverageDESC8、下面两端代码有什么区别selectCUST.*,POS.bus_descfromdw_ods.s00_sema_scmcustpCUSTleftjoindw_pdm.t99_pos_codePOSonCUST.cust_pos_code=POS.pos_codeandCUST.dw_etl_date='2013-07-31'::date;符合这两个条件的数据会被汇总到起来selectCUST.*,POS.bus_descfromdw_ods.s00_sema_scmcustpCUSTleftjoindw_pdm.t99_pos_codePOSonCUST.cust_pos_code=POS.pos_codewhereCUST.dw_etl_date='2013-07-31'::date;符合上面条件的数据被汇总起来,从其中取出符合下面数据的9、有一张表TEST,只有一个字段COL,一共有4条记录,分别是a,b,c,d,对应四个球队,现在四个球队进行比赛,用一条sql语句显示所有可能的比赛组合。selecta.col,b.colfromTESTa,TESTbwherea.col<b.col;10、有表dm_acrm.test01,数据结构为班级(class)、学号(id_number)、数学成绩(math)、英语成绩(English)表内数据如下:(备注:右下角打水印处被遮挡的是C02)请汇总各班级的人数、数学平均成绩、英语平均成绩,并计算所有学生的人数、数学平均成绩、英语平均成绩(建议使用rollup)。SELECTCOUNT(id_number),AVG(match),AVG(english)FROMdm_acrm.test01GROUPBYrollup(CLASS);http://blog.itpub.net/519536/viewspace-610995/11、有一张表TEST,有字段客户ID(cust_id)和交易日期(txn_dte),表结构如下Createtest(Cust_idnumberic,Txn_dtedate)distributedby(cust_id);假设表中含有的数据量有千万级以上(无法通过表自关联),请生成一张表,里面存放客户ID、交易日期以及上一次交易日期。/*distributedby关键字查到是GP数据库相关的,以后遇到再说*/某公司的数据开发初级工程师笔试题:一、SQL语句已知3张表的关系模式:S(SNO,SNAME)学生关系。SNO为学号,SNAME为姓名C(CNO,CNAME,CTEACHER)课程关系。CNO为课程号,CNAME为课程名,CTEACHER为任课教师SC(SNO,CNO,SCGRADE)选课关系。SCGRADE为成绩要求实现如下5个处理:1.找出没有选修过“李明”老师讲授课程的所有学生姓名2.列出有二门以上(含两门)不及格课程的学生姓名及其平均成绩3.列出既学过“1”号课程,又学过“2”号课程的所有学生姓名4.列出“1”号课成绩比“2”号同学该门课成绩高的所有学生的学号5.列出“1”号课成绩比“2”号课成绩高的所有学生的学号及其“1”号课和“2”号课的成绩1.SELECTSNAMEFROMSWHERESNAME!=(SELECTA.SNAMEFROMSA,CB,SCCWHEREA.SNO=C.SNOANDB.CNO=C.CNOANDB.CTEACHER='李明');2.SELECTA.SNAME,AVG(C.SCGRADE)FROMSA,CB,SCCWHEREA.SNO=C.SNOANDB.CNO=C.CNOAND(SELECTCOUNT(C.CNO)FROMSA,CB,SCCWHEREA.SNO=C.SNOANDB.CNO=C.CNOANDC.SCGRADE<60GROUPBYA.SNAME)>=2GROUPBYA.SNAME3.SELECTA.SNAMEFROMSA,CB,SCCWHEREA.SNO=C.SNOANDB.CNO=C.CNOAND(SELECTB.CNOFROMSA,CB,SCCWHEREA.SNO=C.SNOANDB.CNO=C.CNO)=1AND(SELECTB.CNOFROMSA,CB,SCCWHEREA.SNO=C.SNOANDB.CNO=C.CNO)=2;4.SELECTA.SNOFROMSA,CB,SCCWHEREA.SNO=C.SNOANDB.CNO=C.CNOAND(SELECTC.SCGRADEFROMSC)>(SELECTC.SCGRADEFROMSA,CB,SCCWHEREA.SNO=C.SNOANDB.CNO=C.CNOANDA.SNO=2ANDB.CNO=1)5.SELECTA.SNO,C.SCGRADEFROMSA,CB,SCCWHEREA.SNO=C.SNOANDB.CNO=C.CNOANDA.SNO=(SELECTA.SNOFROMSA,CB,SCCWHEREA.SNO=C.SNOANDB.CNO=C.CNOAND(SELECTC.SCGRADEFROMSCWHERECNO=1)>(SELECTC.SCGRADEFROMSCWHERECNO=2))ANDC.CNOIN(1,2);常问的面试题汇总:1、怎么在存储过程中使用临时表?2、口述一下存储过程的写法3、你了解oracle表分区吗?它有什么优缺点4、oracle表分区的分区类型有哪几种?它们的操作方法你知道吗?5、谈谈你对执行计划的理解,你主要看执行计划的哪部分?6、你对sql语句优化有何看法,能说出几种优化方法吗?7、oracle优化器内部处理的表连接方式知道吗?有哪几种?8、会使用开窗函数吗?说一下你对开窗函数、聚合函数、分析函数的理解9、游标的属性有哪几种?显式游标和隐式游标的使用方式分别是什么?10、plsql块怎么捕捉到异常?你能说出几个常见的预定义异常吗?11、说一下自定义异常如何在plsql块中实现?12、你了解视图吗?视图的优缺点是什么?13、假如让你开发一张报表,数据量比较小,你会怎样去实现它?让报表的数据展现出来?14、hashjoin听说过吗?(回答了解过后,继续追问还有几种连接方式你知道吗?说一下看看)(这个其实跟7是差不多的,哈希连接这个东西我面试4次被问了3次,印象深刻)15、你在学校里有没有接触过数据库?了解数据库的体系结构吗?16、你知道SGA和PGA分别是什么吗?17、有没有试着写过触发器?触发器的写法能大致描述一下吗?18、函数和存储过程有什么区别?19、对函数了解吗?说出几个常用的函数20、(说出SUM、COUNT、AVG等函数后)知道instr和substr吗?他们的作用是什么?22、(面试官拿出个本子)写一下decode函数的基本结构(decode(valus,if1,then1,if2,then2……))23、OLAP和OLTP分别指什么?24、谈谈你对索引的理解25、delete和truncate有什么区别26、授权和撤销权限用的指令分别是?27、rowid和rownum有什么不同?28、分页存储过程里的分页sql语句部分是怎么写的?能不能直接先select*fromtable_namewhererownum>=6然后再rownum<=10。(回答不能之后被追问为什么?)29、oracle作业中用到的包是?(追问运行作业、删除作业用到的包分别是?)30、你的oracle的发展前景怎么看?31、如果有一天甲骨文公司倒闭了,你会做出什么选择?32、你知道oracle的最高认证是什么吗?(回答:OCM,追问:你想到达这种高度吗?回答:想,追问:但是你知道通过OCM的人中国有多少吗?这样的高度是高级DBA的高度,有些人终其一生都达不到,在你被现实逼迫的时候,你会选择放弃吗?PS:这个考官当时很犀利,表情很严肃,内心很激动,一层一层追问下去,问得我都想哭了,小小应届生,为了梦想而出来,容易么。。。)

关于“oracle中sql试题有哪些”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。