最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

Oracle笔记:建表、更新、查询综合练习

来源:懂视网 责编:小采 时间:2020-11-09 08:26:48
文档

Oracle笔记:建表、更新、查询综合练习

Oracle笔记:建表、更新、查询综合练习:欢迎进入Oracle社区论坛,与200万技术人员互动交流 >>进入 三、数据操作 1、 求出目前总积分最高的系名,及其积分。 1、确定所要使用的数据表: .sporter表:求出系名称; .grade表:找到积分; 2、确定已知的关联字段:sporter.sporterid=
推荐度:
导读Oracle笔记:建表、更新、查询综合练习:欢迎进入Oracle社区论坛,与200万技术人员互动交流 >>进入 三、数据操作 1、 求出目前总积分最高的系名,及其积分。 1、确定所要使用的数据表: .sporter表:求出系名称; .grade表:找到积分; 2、确定已知的关联字段:sporter.sporterid=

欢迎进入Oracle社区论坛,与200万技术人员互动交流 >>进入 三、数据操作 1、 求出目前总积分最高的系名,及其积分。 1、确定所要使用的数据表: .sporter表:求出系名称; .grade表:找到积分; 2、确定已知的关联字段:sporter.sporterid=grade.sporterid;

欢迎进入Oracle社区论坛,与200万技术人员互动交流 >>进入

三、数据操作

1、 求出目前总积分最高的系名,及其积分。

1、确定所要使用的数据表:

.sporter表:求出系名称;

.grade表:找到积分;

2、确定已知的关联字段:sporter.sporterid=grade.sporterid;

第一步:将sporter表和grade表联合

SELECT s.department,g.mark

FROM sporter s,grade g

WHERE s.sporterid=g.sporterid;第二步:以上是求出每个系针对于项目获得的积分,那么下面将以上的查询分组,按照系名称分组。

SELECT s.department,SUM(g.mark)

FROM sporter s,grade g

WHERE s.sporterid=g.sporterid

GROUP BY s.department;此时已经知道各个系的成绩了,那么对于求出总积分最高的信息,有两种做法:

.做法一:不考虑相同积分的问题,所有的数据由高到低降序排列,取第一个数据。

SELECT * FROM (

SELECT s.department,SUM(g.mark) sum

FROM sporter s,grade g

WHERE s.sporterid=g.sporterid

GROUP BY s.department

ORDER BY sum DESC)

WHERE ROWNUM=1;?做法二:考虑相同积分的问题,则必须首先进行分组函数的嵌套,求出最高的积分是多少,而后再用此内容与之前的分组进行过滤。

SELECT s.department,SUM(g.mark) sum

FROM sporter s,grade g

WHERE s.sporterid=g.sporterid

GROUP BY s.department

HAVING SUM(g.mark)=(

SELECT MAX(SUM(g.mark)) sum

FROM sporter s,grade g

WHERE s.sporterid=g.sporterid

GROUP BY s.department);2、 找出在一操场进行比赛的各项目名称及其冠军的姓名。

1、确定所要使用的数据表:

.sporter表:运动员的姓名;

.item表:项目名称;

.grade表:冠军的信息依靠成绩计算;

2、确定已知的关联字段:

.运动员和成绩:sporter.sporterid=grade.sporterid;

.项目和成绩:item.itemid=grade.itemid;

第一步:确定一操场进行的项目的ID

SELECT itemid FROM item WHERE location=’一操场‘;第二步:求出冠军的成绩,因为各个项目有各个项目的冠军分数

SELECT i.itemid,MAX(g.mark) max

FROM item i,grade g

WHERE i.location=’一操场‘ AND i.itemid=g.itemid

GROUP BY i.itemid;第三步:要根据这个成绩,找到对应的运动员姓名

SELECT s.name,g.itemid,temp.max

FROM sporter s,grade g,(

SELECT i.itemid iid,MAX(g.mark) max

FROM item i,grade g

WHERE i.location=’一操场‘ AND i.itemid=g.itemid

GROUP BY i.itemid) temp

WHERE s.sporterid=g.sporterid AND temp.iid=g.itemid AND g.mark=temp.max;第四步:找到项目名称,引入item表

SELECT s.name,g.itemid,temp.max,i.itemname

FROM sporter s,grade g,(

SELECT i.itemid iid,MAX(g.mark) max

FROM item i,grade g

WHERE i.location=’一操场‘ AND i.itemid=g.itemid

GROUP BY i.itemid) temp,item i

WHERE s.sporterid=g.sporterid AND temp.iid=g.itemid AND g.mark=temp.max

AND g.itemid=i.itemid AND temp.iid=i.itemid;3、 找出参加了张三所参加的所有项目的其他同学的姓名。

[1] [2] [3] [4]

文档

Oracle笔记:建表、更新、查询综合练习

Oracle笔记:建表、更新、查询综合练习:欢迎进入Oracle社区论坛,与200万技术人员互动交流 >>进入 三、数据操作 1、 求出目前总积分最高的系名,及其积分。 1、确定所要使用的数据表: .sporter表:求出系名称; .grade表:找到积分; 2、确定已知的关联字段:sporter.sporterid=
推荐度:
标签: 建立 查询 进入
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top