oracle sql 试题解答笔记

待验证

1.创建一张学生信息表student_info,包含以下信息:学号、姓名、性别、生日、家庭住址、联系电话;创建一张学生成绩表student_score 包含学号、学科、成绩。
CREATE TABLE student_info(
ID INT,
NAME VARCHAR2(10),
sex VARCHAR2(4),
brithday DATE,
address VARCHAR2(50),
phone INT);

CREATE TABLE student_score(
ID INT,
subject VARCHAR2(20),
score NUMBER(4,1));

2、根据题目中的两张表,创建一张新表test,包含以下信息:学号,姓名,学科,成绩
CREATE TABLE TEST AS SELECT a.id,a.name,b.subject,b.score FROM student_info a,student_score b;

3、将根据字符查询转换后结果,规则为:‘A‘转换为‘男‘,‘B‘转换为‘女‘,其他字符转换为‘未知’,试用一个SQL语句写出。
INSERT INTO student_info VALUES (1100,‘aaa‘,‘A‘,to_date(‘1990/3/3 12:12:12‘,‘yyyy/mm/dd hh24:mi:ss‘),‘asdg‘,333);

SELECT DECODE(sex,‘A‘,‘男‘,‘B‘,‘女‘,‘其他‘) FROM student_info;
4、提取题目1表中,学生张三的各科成绩,需要以下信息:学号、姓名、学科、成绩,且按成绩的降序排序。
SELECT a.id,a.name,b.subject,b.score FROM student_info a,student_score b WHERE a.id=b.id AND a.name=‘张三‘ ORDER BY b.score DESC;

5、题目1表中,按学生总成绩由高到低排名,如果成绩相同则排名一样,输出字段为:排名、学号、姓名、总成绩。
SELECT dense_rank() OVER(ORDER BY sum(b.score) DESC) dense_rank,a.id,a.name,sum(b.score) total FROM student_info a,student_score b WHERE a.id=b.id GROUP BY a.name,a.id

①ROW_NUMBER:

Row_number函数返回一个唯一的值,当碰到相同数据时,排名按照记录集中记录的顺序依次递增。 

②DENSE_RANK:
Dense_rank函数返回一个唯一的值,除非当碰到相同数据时,此时所有相同数据的排名都是一样的。 

③RANK:
Rank函数返回一个唯一的值,除非遇到相同的数据时,此时所有相同数据的排名是一样的,同时会在最后一条相同记录和下一条不同记录的排名之间空出排名。
http://www.cnblogs.com/wuyisky/archive/2010/02/24/oracle_rank.html

6.题目1中,假设学科包含‘语文‘,‘英语‘,‘数学‘,‘地理‘,请按以下格式输出学生的成绩
学号 姓名 语文 英语 数学 地理 总成绩
xxx xxx 70 70 70 70 280

SELECT A.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) TOTAL
  FROM STUDENT_INFO A, STUDENT_SCORE B
 WHERE A.ID = B.ID
 GROUP BY A.NAME, A.ID;

http://blog.163.com/magicc_love/blog/static/185853662201371481247696/

7、题目1表中,求出各个学科的平均成绩,要求降序排序
SELECT b.subject,AVG(b.score) average FROM student_info a,student_score b WHERE a.id=b.id GROUP BY b.subject ORDER BY average DESC

8、下面两端代码有什么区别
select 
CUST.*
,POS.bus_desc
from dw_ods.s00_sema_scmcustp CUST
left join dw_pdm.t99_pos_code POS
on CUST.cust_pos_code=POS.pos_code
and CUST.dw_etl_date=‘2013-07-31‘::date;

符合这两个条件的数据会被汇总到起来

select 
CUST.*
,POS.bus_desc
from dw_ods.s00_sema_scmcustp CUST
left join dw_pdm.t99_pos_code POS
on CUST.cust_pos_code=POS.pos_code
where CUST.dw_etl_date=‘2013-07-31‘::date;

符合上面条件的数据被汇总起来,从其中取出符合下面数据的

9、有一张表TEST,只有一个字段COL,一共有4条记录,分别是a,b,c,d,对应四个球队,现在四个球队进行比赛,用一条sql语句显示所有可能的比赛组合。
select a.col,b.col from TEST a ,TEST b where a.col<b.col;

10、有表dm_acrm.test01,数据结构为班级(class)、学号(id_number)、数学成绩(math)、英语成绩(English)
表内数据如下:
 
(备注:右下角打水印处被遮挡的是C02)
请汇总各班级的人数、数学平均成绩、英语平均成绩,并计算所有学生的人数、数学平均成绩、英语平均成绩(建议使用rollup)。
SELECT COUNT(id_number),AVG(match),AVG(english) FROM dm_acrm.test01 GROUP BY rollup(CLASS);

http://blog.itpub.net/519536/viewspace-610995/

11、有一张表TEST,有字段客户ID(cust_id)和交易日期(txn_dte),表结构如下
Create test(
Cust_id numberic,
Txn_dte date
)distributed by(cust_id);
假设表中含有的数据量有千万级以上(无法通过表自关联),请生成一张表,里面存放客户ID、交易日期以及上一次交易日期。

/*
distributed by关键字查到是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. SELECT SNAME
  FROM S
 WHERE SNAME != (SELECT A.SNAME
                  FROM S A, C B, SC C
                 WHERE A.SNO = C.SNO
                   AND B.CNO = C.CNO
                   AND B.CTEACHER = ‘李明‘);
2. SELECT A.SNAME, AVG(C.SCGRADE)
  FROM S A, C B, SC C
 WHERE A.SNO = C.SNO
   AND B.CNO = C.CNO
   AND (SELECT COUNT(C.CNO)
          FROM S A, C B, SC C
         WHERE A.SNO = C.SNO
           AND B.CNO = C.CNO
           AND C.SCGRADE < 60
         GROUP BY A.SNAME) >= 2
 GROUP BY A.SNAME
3. SELECT A.SNAME
  FROM S A, C B, SC C
 WHERE A.SNO = C.SNO
   AND B.CNO = C.CNO
   AND (SELECT B.CNO
          FROM S A, C B, SC C
         WHERE A.SNO = C.SNO
           AND B.CNO = C.CNO) = 1
   AND (SELECT B.CNO
          FROM S A, C B, SC C
         WHERE A.SNO = C.SNO
           AND B.CNO = C.CNO) = 2;
4. SELECT A.SNO
  FROM S A, C B, SC C
 WHERE A.SNO = C.SNO
   AND B.CNO = C.CNO
   AND (SELECT C.SCGRADE FROM SC) >
       (SELECT C.SCGRADE
          FROM S A, C B, SC C
         WHERE A.SNO = C.SNO
           AND B.CNO = C.CNO
           AND A.SNO = 2
           AND B.CNO = 1)
5.  SELECT A.SNO, C.SCGRADE
          FROM S A, C B, SC C
         WHERE A.SNO = C.SNO
           AND B.CNO = C.CNO
           AND A.SNO =
               (SELECT A.SNO
                  FROM S A, C B, SC C
                 WHERE A.SNO = C.SNO
                   AND B.CNO = C.CNO
                   AND (SELECT C.SCGRADE FROM SC WHERE CNO = 1) >
                       (SELECT C.SCGRADE FROM SC WHERE CNO = 2))
           AND C.CNO IN (1, 2);

常问的面试题汇总:
1、怎么在存储过程中使用临时表?
2、口述一下存储过程的写法
3、你了解oracle表分区吗?它有什么优缺点
4、oracle表分区的分区类型有哪几种?它们的操作方法你知道吗?
5、谈谈你对执行计划的理解,你主要看执行计划的哪部分?
6、你对sql语句优化有何看法,能说出几种优化方法吗?
7、oracle优化器内部处理的表连接方式知道吗?有哪几种?
8、会使用开窗函数吗?说一下你对开窗函数、聚合函数、分析函数的理解
9、游标的属性有哪几种?显式游标和隐式游标的使用方式分别是什么?
10、plsql块怎么捕捉到异常?你能说出几个常见的预定义异常吗?
11、说一下自定义异常如何在plsql块中实现?
12、你了解视图吗?视图的优缺点是什么?
13、假如让你开发一张报表,数据量比较小,你会怎样去实现它?让报表的数据展现出来?
14、hash join听说过吗?(回答 了解过 后,继续追问 还有几种连接方式你知道吗?说一下看看) (这个其实跟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 * from table_name where rownum>=6 然后再rownum<=10。(回答不能之后被追问 为什么?)
29、oracle作业中用到的包是?(追问 运行作业、删除作业用到的包分别是?)
30、你的oracle的发展前景怎么看?
31、如果有一天甲骨文公司倒闭了,你会做出什么选择?
32、你知道oracle的最高认证是什么吗?(回答:OCM,追问:你想到达这种高度吗?回答:想,追问:但是你知道通过OCM的人中国有多少吗?这样的高度是高级DBA的高度,有些人终其一生都达不到,在你被现实逼迫的时候,你会选择放弃吗?PS:这个考官当时很犀利,表情很严肃,内心很激动,一层一层追问下去,问得我都想哭了,小小应届生,为了梦想而出来,容易么。。。)
时间: 2024-10-10 21:48:03

oracle sql 试题解答笔记的相关文章

oracle进阶笔记-常用工具的使用-oracle sql developer

oracle sql developer 类似于plsqldeveloper 下载地址;http://www.oracle.com/technology/products/database/sql_developer/index.html 安装工具 解压就OK 打开 首先必须建立一个对数据库连接 1 连接名(任意) oracle11g_connect 输入账户名sys 密码 oracle 连接方式 基本 角色 sysdba 主机名: 数据库服务器主机名或者ip地址 192.168.3.1 侦听的

MS SQL到Oracle的数据迁移笔记

MS SQL到Oracle的数据迁移笔记 一.任务背景 旧系统使用MS SQL Server数据库,新系统使用Oracle数据库,现在需要将旧系统中的数据迁移到新系统中,旧数据按照约定的规则转换后,能够在新系统中使用或查询.另外,新系统的实施人员并不清楚旧系统的数据结构,且两个新旧两个系统的使用的数据结构有较大的差异.为了叙述方便,将旧系统维护人员简称为A,新系统实施人员简称为B. 二.总体思路 1.  A与B根据各自了解的信息,一起制定中间表: 2.  A从MS SQL Server提取数据,

算法笔记_111:第五届蓝桥杯软件类省赛真题(Java本科A组)试题解答

 目录 1 猜年龄 2 李白打酒 3 神奇算式 4 写日志 5 锦标赛 6 六角填数 7 绳圈 8 兰顿蚂蚁 9 斐波那契 10 波动数列   前言:以下试题解答代码部分仅供参考,若有不当之处,还请路过的同学提醒一下~ 1 猜年龄 标题:猜年龄 小明带两个妹妹参加元宵灯会.别人问她们多大了,她们调皮地说:"我们俩的年龄之积是年龄之和的6倍".小明又补充说:"她们可不是双胞胎,年龄差肯定也不超过8岁啊." 请你写出:小明的较小的妹妹的年龄. 注意: 只写一个人的年龄数

oracle sql 高级编程 历史笔记整理

20130909 周一 oracle sql 开发指南 第7章 高级查询 1.层次化查询select level,ttt.*,sys_connect_by_path(ttt.col1,',') from ttt start with .. Connect by prior -因为先建立树,再进行where过滤的.在where中过滤和在cooonect by中过滤是不一样的. 2.rollup cube高级查询 select grouping(col1) .. From ttt group by

算法笔记_108:第四届蓝桥杯软件类省赛真题(JAVA软件开发本科A组)试题解答

 目录 1 世纪末的星期 2 振兴中华 3 梅森素数 4 颠倒的价牌 5 三部排序 6 逆波兰表达式 7 错误票据 8 带分数 9 剪格子 10 大臣的旅费 前言:以下试题解答代码部分仅供参考,若有不当之处,还请路过的同学提醒一下~ 1 世纪末的星期 标题: 世纪末的星期 曾有邪教称1999年12月31日是世界末日.当然该谣言已经不攻自破. 还有人称今后的某个世纪末的12月31日,如果是星期一则会.... 有趣的是,任何一个世纪末的年份的12月31日都不可能是星期一!! 于是,"谣言制造商&qu

算法笔记_122:蓝桥杯第七届省赛(Java语言A组)试题解答

 目录 1 煤球数目 2 生日蜡烛 3 搭积木 4 分小组 5 抽签 6 寒假作业 7 剪邮票 8 取球博弈 9 交换瓶子 10 压缩变换   前言:以下试题解答代码部分仅供参考,若有不当之处,还请路过的同学提醒一下~ 1 煤球数目 煤球数目 有一堆煤球,堆成三角棱锥形.具体: 第一层放1个, 第二层3个(排列成三角形), 第三层6个(排列成三角形), 第四层10个(排列成三角形), .... 如果一共有100层,共有多少个煤球? 请填表示煤球总数目的数字. 注意:你提交的应该是一个整数,不要填

SQL Server 2012笔记分享-1:SQL Server版本的演变

SQL是英文Structured Query Language的缩写,意思为结构化查询语言.SQL语言的主要功能就是同各种数据库建立联系,进行沟通.按照ANSI(美国国家标准协会)的规定,SQL被作为关系型数据库管理系统的标准语言.SQL语句可以用来执行各种各样的操作,例如更新数据库中的数据,从数据库中提取数据等.目前,绝大多数流行的关系型数据库管理系统,如Oracle, Sybase, Microsoft SQL Server, Access等都采用了SQL语言标准. SQL server版本

SQL Server 2012笔记分享-7:高可用性功能的增强

(一)数据库镜像 1.支持压缩传输 2.支持自动页修复(msdb..suspect_pages) (二)数据库群集     1.支持多子网 SQL Server 多子网故障转移群集是一种配置,其中每个故障转移群集节点都连接到其他子网或其他子网组.这些子网可以处于同一位置中,也可以位于地理上分散的站点. 跨地理上分散的站点进行群集有时称为拉伸群集. 因为没有所有节点都可以访问的共享存储,所以在多个子网上的数据存储之间应该复制数据. 对于数据复制,有多个可用数据的副本. 因此,多子网故障转移群集除了

Linux三剑客企业级经典面试题解答实战

Linux三剑客企业级经典面试题解答实战 说明:来自早晨老男孩教育在线班一期同学的面试题和学生给出的答案整理 面试题:请过滤oldboy.log中在device: {}里面出现了多少次oldboy,过滤并统计出来. oldboy is a linuxer. device: { oo oldboy no sql this is log niu niu } oldboy device: { oldboy no sql this is log niu niu } oldboy device: { ol