`
xiaomogui
  • 浏览: 243549 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

oracle基础经典面试题

阅读更多

题目1

问题描述:

管理岗位业务培训信息,建立3个表:

S (S#,SN,SD,SA) S#,SN,SD,SA 分别代表学号、学员姓名、所属单位、学员年龄

C (C#,CN ) C#,CN 分别代表课程编号、课程名称

SC ( S#,C#,G ) S#,C#,G 分别代表学号、所选修的课程编号、学习成绩

1. 使用标准SQL嵌套语句查询选修课程名称为’税收基础’的学员学号和姓名

--实现代码:

SELECT SN,SD FROM S

WHERE [S#] IN(

SELECT [S#] FROM C,SC

WHERE C.[C#]=SC.[C#]

AND CN=N'税收基础')

 

2. 使用标准SQL嵌套语句查询选修课程编号为’C2’的学员姓名和所属单位

--实现代码:

SELECT S.SN,S.SD FROM S,SC

WHERE S.[S#]=SC.[S#]

AND SC.[C#]='C2'

 3. 使用标准SQL嵌套语句查询不选修课程编号为’C5’的学员姓名和所属单位

--实现代码:

SELECT SN,SD FROM S

WHERE [S#] NOT IN(

SELECT [S#] FROM SC

WHERE [C#]='C5')

 4. 使用标准SQL嵌套语句查询选修全部课程的学员姓名和所属单位

--实现代码:

SELECT SN,SD FROM S

WHERE [S#] IN(

SELECT [S#] FROM SC

RIGHT JOIN

C ON SC.[C#]=C.[C#] GROUP BY [S#]

HAVING COUNT(*)=COUNT([S#]))

 5. 查询选修了课程的学员人数

--实现代码:

SELECT 学员人数=COUNT(DISTINCT [S#]) FROM SC

 6. 查询选修课程超过5门的学员学号和所属单位

--实现代码:

SELECT SN,SD FROM S

WHERE [S#] IN(

SELECT [S#] FROM SC

GROUP BY [S#]

HAVING COUNT(DISTINCT [C#])>5)

  

题目2

问题描述:

已知关系模式:

S (SNO,SNAME) 学生关系。SNO 为学号,SNAME 为姓名

C (CNO,CNAME,CTEACHER) 课程关系。CNO 为课程号,CNAME 为课程名,CTEACHER 为任课教师

SC(SNO,CNO,SCGRADE) 选课关系。SCGRADE 为成绩

1. 找出没有选修过“李明”老师讲授课程的所有学生姓名

--实现代码:

SELECT SNAME FROM S

WHERE NOT EXISTS(

SELECT * FROM SC,C

WHERE SC.CNO=C.CNO

AND CNAME='李明'

AND SC.SNO=S.SNO)

 2. 列出有二门以上(含两门)不及格课程的学生姓名及其平均成绩

--实现代码:

SELECT S.SNO,S.SNAME,AVG_SCGRADE=AVG(SC.SCGRADE)

FROM S,SC,(

SELECT SNO

FROM SC

WHERE SCGRADE<60

GROUP BY SNO

HAVING COUNT(DISTINCT CNO)>=2

)A WHERE S.SNO=A.SNO AND SC.SNO=A.SNO

GROUP BY S.SNO,S.SNAME

 3. 列出既学过“1”号课程,又学过“2”号课程的所有学生姓名

--实现代码:

SELECT S.SNO,S.SNAME

FROM S,(

SELECT SC.SNO

FROM SC,C

WHERE SC.CNO=C.CNO

AND C.CNAME IN('1','2')

GROUP BY SNO

HAVING COUNT(DISTINCT CNO)=2

)SC WHERE S.SNO=SC.SNO

 4. 列出“1”号课成绩比“2”号同学该门课成绩高的所有学生的学号

--实现代码:

SELECT S.SNO,S.SNAME

FROM S,(

SELECT SC1.SNO

FROM SC SC1,C C1,SC SC2,C C2

WHERE SC1.CNO=C1.CNO AND C1.NAME='1'

AND SC2.CNO=C2.CNO AND C2.NAME='2'

AND SC1.SCGRADE>SC2.SCGRADE

)SC WHERE S.SNO=SC.SNO

 5. 列出“1”号课成绩比“2”号课成绩高的所有学生的学号及其“1”号课和“2”号课的成绩

--实现代码:

SELECT S.SNO,S.SNAME,SC.[1号课成绩],SC.[2号课成绩]

FROM S,(

SELECT SC1.SNO,[1号课成绩]=SC1.SCGRADE,[2号课成绩]=SC2.SCGRADE

FROM SC SC1,C C1,SC SC2,C C2

WHERE SC1.CNO=C1.CNO AND C1.NAME='1'

AND SC2.CNO=C2.CNO AND C2.NAME='2'

AND SC1.SCGRADE>SC2.SCGRADE

)SC WHERE S.SNO=SC.SNO

 

 

 


SQL经典面试题一(ORACLE)
说明:有三个表,项目表、合同表、付款表

--下面是建立表的语句

create table 项目(项目编号 int,项目名称 varchar(50))
insert into 项目 
select 1, '项目1' from dual
union all
select 2, '项目2' from dual
union all
select 3, '项目3' from dual;


create table 合同(合同编号 int,项目编号 int,合同金额 number(7,3))

insert into 合同
select 1,1,1000 from dual
union all
select 2,1,1500 from dual
union all
select 3,2,2000 from dual;

create table 付款(付款编号 int,合同编号 int,付款金额 number(7,3))

insert into 付款
select 1,1,100 from dual
union all
select 2,2,200 from dual
union all
select 3,2,800 from dual;

 一个项目可能会有签署多个合同,每个合同会分几次付款,

问题(一)
设计一个查询,要求返回结果如下:
项目编号        项目名称             项目所有合同的金额                               
----------- ----------------------- ------------------------
1           项目1                    2500
2           项目2                    2000
3           项目3                    NULL

解答:

SELECT L.项目编号,MAX(L.项目名称),SUM(R.合同金额) AS 合同金额
FROM 项目 L LEFT OUTER JOIN 合同 R
ON L.项目编号=R.项目编号
GROUP BY L.项目编号

 问题(二)
设计一个查询,要求返回结果如下:
项目编号        项目所有合同已付款金额                             
----------- -----------------------------
1            1100
2            NULL
-----------------------------------------

解答:

SELECT T2.项目编号,SUM(T3.付款金额) AS 项目所有合同已付款金额
FROM 合同 T2 LEFT OUTER JOIN 付款 T3
ON  T2.合同编号=T3.合同编号
GROUP BY T2.项目编号

 问题(三)
设计一个查询,要求返回结果如下:
项目编号    项目名称        项目所有合同已付款金额                             
----------- ----------------------------------------
1           项目1   1100
2           项目2   NULL
----------------------------------------------------

解答:

SELECT T1.项目编号
,MAX(T1.项目名称)
,SUM(T3.付款金额) AS 项目所有合同已付款金额
FROM 项目 T1 JOIN 合同 T2
ON T1.项目编号=T2.项目编号
LEFT OUTER JOIN 付款 T3
ON  T2.合同编号=T3.合同编号
GROUP BY T1.项目编号

  

问题(四)
请您设计一个查询语句,检索的格式如下

------------------------------------------------------------------------
项目编号    项目名称    项目所有合同的金额    项目所有合同已付款金额    
1           项目1        2500.000              1100.000
2           项目2        2000.000              NULL
------------------------------------------------------------------------

解答:

select L.项目编号,L.项目名称,L.项目所有合同的金额,R.项目所有合同已付款金额 
from 
(select A.项目编号,A.项目名称,sum(B.合同金额) 项目所有合同的金额
   from 项目 A LEFT JOIN 合同 B ON A.项目编号=B.项目编号
     group by A.项目编号,A.项目名称) L
JOIN 
(select B.项目编号, sum(付款金额) 项目所有合同已付款金额
   from 合同 B LEFT JOIN  付款 C ON B.合同编号=C.合同编号
     group by B.项目编号) R
ON L.项目编号=R.项目编号

 

 

分享到:
评论

相关推荐

    Oracle经典面试题(个人精心收集,值得收藏)

    本资料集合了多年以来个人精心收集的Oracle经典面试题,旨在帮助求职者或数据库管理员更好地准备面试,理解Oracle数据库的核心概念和技术。 1. **SQL基础** - SQL(Structured Query Language)是用于管理关系...

    oracle经典面试题

    Oracle经典面试题覆盖了数据库的基础架构、数据块管理、表空间、备份与恢复策略、查询优化、索引类型以及系统参数配置等多个方面。这些问题旨在评估应试者对Oracle数据库的深入理解和实际操作能力。 ### 数据库结构...

    SQL,ORACLE经典面试题

    在本节中,我们将从数据库基础、SQL 语言、视图、完整性约束、第三范式、ER 模型、索引、事务、锁、死锁、存储过程、触发器 等方面总结 SQL 和 ORACLE 面试题的知识点。 数据库基础 * 数据抽象:物理抽象、概念...

    oracle数据库面试题

    ### Oracle数据库面试题详解 #### 一、字符串操作函数 Oracle数据库提供了丰富的字符串操作函数,这些函数能够帮助我们高效地处理字符串数据。以下是一些常用的字符串操作函数: 1. **ASCII()**: 返回字符串中第...

    ORACLE PL-SQL经典面试题

    面试中,关于Oracle PL/SQL的经典问题通常涉及数据库架构、数据类型、异常处理、表关系、存储过程、备份恢复策略等多个方面。以下是对这些知识点的详细解释: 1. 实例与数据库的关系:实例是Oracle服务器的运行时...

    经典sql语句(SQL经典面试题及答案,某外企SQL Server面试题L)

    本资源“经典sql语句”聚焦于SQL的经典面试题及其解答,旨在帮助求职者特别是针对SQL Server岗位的应聘者准备面试。以下将详细解析SQL的一些核心知识点,并结合可能的面试问题进行阐述。 1. **选择查询(SELECT)**...

    Java+ajax+spring+oracle面试题

    对于跳槽换工作,以及学习有很大的帮助,其中有Java基础,ssh面试,spring,oracle数据库,ajax等经典案例

    经典Java基础面试题集锦

    ### 经典Java基础面试题集锦 #### 核心知识点概述 本文将围绕一系列经典Java基础面试题目展开,深入探讨各个知识点的核心概念及其应用场景。这些面试题旨在考察应聘者对于Java基础知识的理解程度以及实际应用能力...

    Oracle数据库常用语句实例和经典面试题总结

    这份资料是关于Oracle数据库常用语句的实例和经典面试题的总结,旨在帮助学习者巩固基础,提升技能。 一、数据查询 在Oracle中,基本的数据查询语句是SELECT,它用于从表中获取数据。例如: ```sql SELECT column1...

    经典oracle面试试题

    这些题目涵盖了Oracle数据库的基础知识,包括数据库架构、管理、备份恢复和高可用性等方面,是评估应聘者Oracle技能的重要参考。面试中,考生应能深入解释每个答案背后的原因和原理,展示其在实际工作中的应用能力。

    Java经典面试题集

    Java作为世界上最受欢迎的编程语言之一,其面试题集是求职者和开发者提升技能的重要资源。以下是一些在Java面试中可能会遇到的经典问题及其详细解答,涵盖了基础语法、面向对象、集合框架、多线程、异常处理、JVM、...

    java程序员经典面试题

    Java 程序员经典面试题 本资源为Java程序员面试必备资料,涵盖了Java基础、线程编程、JSP、Servlet、JDBC、JDO、EJB、应用服务器、J2EE、MVC、设计模式等多个方面的知识点,旨在帮助Java程序员更好地准备面试,获得...

    java最经典面试题.doc

    ### Java经典面试题知识点梳理 #### 一、ArrayList与Vector的区别,HashMap与Hashtable的区别 - **ArrayList vs Vector** - **线程安全性**:`Vector`是线程安全的,而`ArrayList`不是。`Vector`的方法使用了`...

    JAVA面试数据库部分经典面试题

    【JAVA面试数据库部分经典面试题】的讨论涵盖了多个与数据库相关的知识点,主要涉及SQL Server 2000和2005的区别、存储过程的作用、以及Oracle数据库的性能优化策略。 1. SQL Server 2000与2005的区别: - 界面...

    oracle开发面试题经典.pdf

    在进行Oracle数据库开发时,面试通常会涉及到一系列关于Oracle数据库的概念、SQL编程技能、性能优化、安全性等方面的知识点。根据提供的文件内容,我们将解析几个核心知识点。 1. Oracle数据类型与序列的使用: ...

    数据库面试经典试题!!

    这些经典面试题涵盖了数据库的基础知识、设计原则、性能优化、安全措施以及分布式与非关系型数据库等内容。通过深入理解和实践这些知识点,不仅可以应对面试,更能提升你在实际工作中处理数据库问题的能力。

    软件测试经典面试题及答案

    ### 软件测试经典面试题及答案解析 #### 兼容性测试及其侧重方面 兼容性测试是一种评估软件在不同环境下是否能够正常运行的测试方法。这些环境可能包括不同的操作系统、硬件配置、网络环境以及其他相关软件等。...

    MySQL 数据库经典面试题解析.zip

    这份"MySQL 数据库经典面试题解析"文档将帮助我们深入理解MySQL的关键概念、操作和最佳实践,以便在面试中脱颖而出或者在实际工作中更好地应用MySQL。 首先,我们要了解MySQL的基本概念。MySQL是一个开源、免费的...

    电脑应用-SQL经典面试题集共13页.pdf.zip

    【SQL经典面试题集共13页.pdf】 这个压缩包文件包含了有关SQL(Structured Query Language,结构化查询语言)的经典面试题目,适用于那些在IT行业,尤其是数据库管理和数据分析领域求职的人员。SQL是用于管理关系...

    .net经典面试题,绝对的好东西

    标题中的".net经典面试题,绝对的好东西"指的是.NET框架相关的面试问题,这些问题是针对.NET开发者,特别是应届毕业生和有经验的程序员的。.NET框架是由微软开发的一个全面的开发平台,用于构建各种类型的应用程序,...

Global site tag (gtag.js) - Google Analytics