一、题目

1.找出张三的最高分和最低分以及对应的课程名

select * from course c,mark m where c.cid=m.cid and sid =(select sid from student where sname ='张三')
and
(cmark >=all(select cmark from course c,mark m where c.cid=m.cid and sid =(select sid from student where sname ='张三'))
or
cmark <=all(select cmark from course c,mark m where c.cid=m.cid and sid =(select sid from student where sname ='张三')))

2.那些学生的各科成绩均高于张三

step1、找出有一门课成绩低于张三这门课成绩的人
step1.1、 select sid from student where sname='张三'
step1.2 select a.sid from mark a,mark b
where a.cid=b.cid and b.sid=1002 and a.cmark<b.cmark
step2、paichu step1,剩下的就是目的
step2.1、在成绩表中排除、找出剩下的sid
select sid from mark where sid not in (step1.2)
step2.2 在学生表中兑换成姓名
select sname from student where sid in(step2.1)

3.按平均成绩从高到低显示所有学生的“数学”、“英语”、“语文”三门的课程成绩(按如下形式显示:学生ID,高等数学,计算机数学,英语,有效课程数,有效平均分 )

select sid 学生id ,(select cmark from mark where cid=
(select cid from course where cname='数学') and sid=sc.sid) 数学 ,(select cmark from mark where cid=
(select cid from course where cname='英语')and sid=sc.sid) 英语,count(*) 有效课程数,avg(cmark) 有效均分
from mark sc group by sid

4.查询只选了数学和英语课的学生姓名

step1、select cid from course where cname='数学'
step1、select cid from course where cname='英语'
step3 select from mark a,mark b where a.cid=(step1)and b.cid=(step2) and a.sid=b.sid
step4 select sid from mark where sid in (step3) group by sid hving count(*)=2

5.找出计算机专业中均分最高的男生姓名

select sid from student where smajor='计算机' and ssex='男'
select sid,avg(cmark) amk from mark where sid in (step1)
group by sid
select max(amk) from (step2)
select sid from (step2) where amk =(step3)

6.找出数学和英语均分最高的男生姓名

step1 select cid from course where cname in('数学','英语')
step2 select cid from student where ssex='男'
step3 select sid from mark where sid in(step2) and cid in (step1) group by sid

7.找出个人均分大于总均分(所有人所有课程的均分)的学生姓名

step1 select avg(cmark) from mark
step2 select sid from mark group by sid having avg(cmark)>(step1)

8.上海地区哪门课的均分比福建差

step1 select sid from student where snativeplace='上海'
step2 select cid,avg(cmark)from mark where sid in=(step1) group by cid
step3 select sid from student where snativeplace='福建'
step4 select cid,avg(cmark) from mark where sid in=(step3) group by cid
step5 select * from mark a,mark b
where a.cid=(step2)and b.cid=(step4)and a.cid=b.cid and a.cid<b.cid
/*select * from mark a,mark b
where a.sid='10001'and b.cid='10002' and a.cid=b.cid and a.cid>b.cid*/

9. 求各门课程去掉一个最高分和最低分后的平均分

step1 select * from mark where cid='' order by cmark
step2 select cname,(
select avg(smark) from(
select sid,cid,cmark,rownum r from (
select * from mark m where cid='' order by cmark)
where r!=1 and r!=(select count(*)from mark m where cid=''))
j)均分 from course c

10.求2001课程去掉一个最高分和最低分后的平均分

step1 select * from mark where cid='' order by cmark
step2 select cname,(
select avg(smark) from(
select sid,cid,cmark,rownum r from (
select * from mark m where cid='' order by cmark)
where r!=1 and r!=(select count(*)from mark m where cid=''))
)from course c

Orcle数据库查询练习复习:四的更多相关文章

  1. Orcle数据库查询练习复习:三

    一.题目 1.与“张三”同乡的男生姓名 select * from student where snativeplace=(select snativeplace from student where ...

  2. Orcle数据库查询练习复习:二

    一.题目 1.找出所有成绩均低于80的学生姓名 select sname from student where sid in( ) select sname from student where si ...

  3. Orcle数据库查询练习复习:一

    一.创建数据库和表 drop table student; create table student ( sid int, sname ), sage int, ssex ), snativeplac ...

  4. 经验:什么影响了数据库查询速度、什么影响了MySQL性能 (转)

    一.什么影响了数据库查询速度 1.1 影响数据库查询速度的四个因素 1.2 风险分析 QPS:Queries Per Second意思是“每秒查询率”,是一台服务器每秒能够相应的查询次数,是对一个特定 ...

  5. 优化SQL Server数据库查询方法

    SQL Server数据库查询速度慢的原因有很多,常见的有以下几种: 1.没有索引或者没有用到索引(这是查询慢最常见的问题,是程序设计的缺陷) 2.I/O吞吐量小,形成了瓶颈效应. 3.没有创建计算列 ...

  6. 转载 50种方法优化SQL Server数据库查询

    原文地址 http://www.cnblogs.com/zhycyq/articles/2636748.html 50种方法优化SQL Server数据库查询 查询速度慢的原因很多,常见如下几种: 1 ...

  7. 【百度地图API】建立全国银行位置查询系统(四)——如何利用百度地图的数据生成自己的标注

    原文:[百度地图API]建立全国银行位置查询系统(四)--如何利用百度地图的数据生成自己的标注 摘要: 上一章留个悬念,"如果自己没有地理坐标的数据库,应该怎样制作银行的分布地图呢?&quo ...

  8. SQL模糊查询条件的四种匹配模式

    执行数据库查询时,有完整查询和模糊查询之分. 一般模糊语句格式如下: SELECT 字段 FROM 表 WHERE 某字段 LIKE 条件 其中关于条件,SQL提供了四种匹配模式: 1.% :表示任意 ...

  9. 利用C#实现分布式数据库查询

    随着传统的数据库.计算机网络和数字通信技术的飞速发展,以数据分布存储和分布处理为主要特征的分布式数据库系统的研究和开发越来越受到人们的关注.但由于其开发较为复杂,在一定程度上制约了它的发展.基于此,本 ...

随机推荐

  1. SequoiaDB数据库的一般概念介绍

    SequoiaDB数据库的主要对象包括文档.集合.集合空间与索引等. 文档 SequoiaDB中的文档为JSON格式,一般又被称为记录.在数据库内部使用BSON,即二进制的方式存放JSON数据.一般情 ...

  2. Super Object Toolkit (支持排序)

    (* * Super Object Toolkit * * Usage allowed under the restrictions of the Lesser GNU General Public ...

  3. Windows7鼠标右键里没有新建文本文件的选项,解决办法

    1.“开始”->“运行”,输入"regedit",打开注册表编辑器 2.展开HKEY_CLASSES_ROOT,找到.txt 3.选中.txt,查看右侧窗格的“默认值”是不是 ...

  4. [转]WPF 依赖项属性

    from:http://blog.csdn.net/datoumimi/article/details/8033682 ps:环境限制,发的东西一长就会被拦截,所以删了一部分 UI软件中经常会用到大量 ...

  5. hdu 2256 Problem of Precision 构造整数 + 矩阵快速幂

    http://acm.hdu.edu.cn/showproblem.php?pid=2256 题意:给定 n    求解   ? 思路: , 令  , 那么 , 得: 得转移矩阵: 但是上面求出来的并 ...

  6. WIN7右下角的声音图标不见了

    有时候电脑启动了,但是声音图标却不见了,造成调试声音相当的麻烦,那么怎么来处理呢? 一:ctrl+shit+Esc键打开任务管理器 二:找到exeplore.exe,结束进程. 三:重新建立进程 上述 ...

  7. JAVA中toString方法

    因为它是Object里面已经有了的方法,而所有类都是继承Object,所以"所有对象都有这个方法". 它通常只是为了方便输出,比如System.out.println(xx),括号 ...

  8. 在Visual Studio 2010 中创建类库(dll)

    创建类库 选择"文件"->新建->项目->Visual C# ->类库,输入名称,选择位置,单击确定 浏览解决方案资源管理器,可以看到两个C#类,第一个是A ...

  9. net windows Kafka

    net windows Kafka 安装与使用入门(入门笔记) 完整解决方案请参考: Setting Up and Running Apache Kafka on Windows OS   在环境搭建 ...

  10. Java中List和ArrayList的区别

    List:是一个有序的集合,可以包含重复的元素.提供了按索引访问的方式.它继承 Collection.List有两个重要的实现类:ArrayList 和 LinkedListArrayList:我们可 ...