ORACLE经典练习:三表联查:sporter,item,grade

oracle第五章多表连接习题答案(理解+剖析) 练习1 1.写一个查询,显示所有员工姓名,部门编号,部门名称。 select e.ename,e.deptno,d.dname from emp e,dept d where e.deptno=d.deptno; 注意:当使用多表连接的的时候一定要注意关联表 一般关联的条件是关联的表数减去一 如上所示,from了两个表 所以下面的where至少要有一个关联起它们的条件 否则会造成笛卡尔乘积 2... 阅读详情

--运动员表
create table sporter(
sporterid number(8) primary key,
sportername varchar2(50) not null,
sex varchar2(10),
department varchar2(50) not null
);

--项目表
create table item(
itemid varchar2(50) primary key,
itemname varchar2(50),
itemloc varchar2(50)
);

--积分表
create table grade(
sporterid  number(8),
itemid varchar2(50),
mark number(8) check(mark in (0,2,4,6)),
constraint grade_sporter_fk foreign key(sporterid) references sporter(sporterid),
constraint grade_item_fk foreign key(itemid) references item(itemid) on delete cascade
);
--on delete cascade 级联删除,删除父表数据时,会自动级联删除子表中的关联数据

insert into sporter values(1001, '李明','男','计算机系');
insert into sporter values(1002, '张三','男','数学系');
insert into sporter values(1003, '李四','男','计算机系');
insert into sporter values(1004, '王二','男','物理系');
insert into sporter values(1005, '李娜','女','心理系');
insert into sporter values(1006, '孙丽','女','数学系');


insert into item values('x001', '男子五千米','一操场');
insert into item values('x002','男子标枪','一操场');
insert into item values('x003', '男子跳远','二操场');
insert into item values('x004', '女子跳高','二操场');
insert into item values('x005', '女子三千米','三操场');

insert into grade values(1001,  'x001', 6);
insert into grade values(1002,  'x001', 4);
insert into grade values(1003,  'x001', 2);
insert into grade values(1004,  'x001', 0);
insert into grade values(1001,  'x003', 4);
insert into grade values(1002,  'x003', 6);
insert into grade values(1004,  'x003', 2);
insert into grade values(1005,  'x004', 6);
insert into grade values(1006,  'x004', 4);
insert into grade values(1003,  'x002', 6);
insert into grade values(1005 , 'x002', 4);
insert into grade values(1006,  'x002', 2);
insert into grade values(1001,  'x002', 0);

commit;

select * from sporter;
select * from item;
select * from grade;

A.求出目前总积分最高的系名,及其积分。
1.求出每个系各自有多少积分
select s.department dp,sum(g.mark) summark
from sporter s,grade g
where s.sporterid=g.sporterid
group by s.department
order by summark desc

2.积分最高的系
select dp,summark
from (select s.department dp,sum(g.mark) summark
        from sporter s,grade g
        where s.sporterid=g.sporterid
        group by s.department
        order by summark desc)
where rownum=1

B.找出在一操场进行比赛的各项目名称及其冠军的姓名。
select i.itemname,s.sportername
from item i,sporter s,grade g
where i.itemid=g.itemid and s.sporterid=g.sporterid
      and i.itemloc='一操场' and g.mark=6

C.找出参加了张三所参加的所有项目的其他同学的姓名。
select s.SPORTERNAME
from sporter s
where s.SPORTERNAME<>'张三'

张三所参加的所有项目
select g.itemid
from sporter s,grade g
where s.SPORTERID=g.SPORTERID and s.SPORTERNAME='张三'

找出参加了x001和x003两个项目的同学的名字(张三除外)
select distinct s.SPORTERNAME
from sporter s,grade g
where s.SPORTERID=g.SPORTERID and s.SPORTERNAME<>'张三'
      and g.ITEMID in (select g.itemid
                        from sporter s,grade g
                        where s.SPORTERID=g.SPORTERID and s.SPORTERNAME='张三')      
      
遇到查询结果有重复,两种办法:
1.第一种办法去重复(group by)
select s.SPORTERNAME
from sporter s,grade g
where s.SPORTERID=g.SPORTERID and s.SPORTERNAME<>'张三'
      and g.ITEMID in ('x001','x003')
group by s.SPORTERNAME

2.第二种办法去重复(distinct)
select distinct s.SPORTERNAME
from sporter s,grade g
where s.SPORTERID=g.SPORTERID and s.SPORTERNAME<>'张三'
      and g.ITEMID in ('x001','x003')
      
select s.SPORTERNAME
from sporter s,grade g
where s.SPORTERID=g.SPORTERID and s.SPORTERNAME<>'张三'
      and g.ITEMID =all('x001','x003')--这里条件永远不能成立
      
如果要求其他同学必须全部参与了张三的项目
select s.SPORTERNAME
from sporter s,grade g
where s.SPORTERID=g.SPORTERID and s.SPORTERNAME<>'张三'
      and g.ITEMID in ('x001','x003')
group by s.SPORTERNAME
having count(s.SPORTERNAME)=(select count(g.itemid)
                                from sporter s,grade g
                                where s.SPORTERID=g.SPORTERID and s.SPORTERNAME='张三')

D.经查张三因为使用了违禁药品,其成绩都记0分,请在数据库中作出相应修改。
update grade set mark=0 where sporterid=(select sporterid from sporter where sportername='张三')
commit;
select * from grade;      
      
E.经组委会协商,需要删除女子跳高比赛项目。
delete from item where itemname='女子跳高';

可检验成果:select * from item;select * from grade;
 

ORACLE经典作业:三表联查:EMP,DEPT,SALGRADE 1、 列出至少有一个员工的所有部门编号、名称,并统计出这些部门的平均工资、最低工资、最高工资。 2、 列出薪金比“SMITH”或“ALLEN”多的所有员工的编号、姓名、部门名称、其领导姓名。 3、 列出所有员工的编号、姓名及其直接上级的编号、姓名,显示的结果按领导年工资的降序排列。 4、 列出受雇日期早于其直接上级的所有员工的编号、姓名、部门名称、部门位置、部门人数。 5、 列出部门名称和这些部门的员工信息(数量、平均工资),同时列出那些没有员工的部门。 6、 列出所有“CLERK”(办事员)的姓 阅读详情

相关推荐

Oracle多表连接练习

练习题 1. 列出所有员工的姓名、部门名称和工资 Select e.ename,d.dname,e.sal From emp e,dept d Where e.deptno=d.deptno; 2. 列出所有部门的详细信息和部门人数 Select d.deptno,d.dname, d.loc,count(e.empno) From emp e,dept d Where e. deptno(+)=d.deptno Group by d.deptno,d.dname,d.loc; 3. 列出所有员工的年工资、所在部门名称,按年薪升序排序 Select e.ename,e.sal*12 income,d.dname From emp e,dept d Where e.deptno=d.deptno Order by income;

Oracle【三表的联合查询】

原文:(https://www.cnblogs.com/cao-yin/p/9747522.html) insert into city values(1,'北京','彰显大气'); insert into city values(2,'上海','繁华都市'); insert into city values(3,'广州','凸显舒适'); insert into city values(...

蒗若晨曦 9896

晶振(晶体振荡器)测试方法详解

晶振测试方法分为无源和有源两种类型。无源晶振(两脚)需用示波器测试波形,重点关注正弦波形状、200mV-1.5Vpp幅值和频率精度;有源晶振(四脚)通电后直接输出方波。测试要点包括:示波器使用10X探头、AC耦合,带宽需5倍于晶振频率;万用表可初筛短路/开路;替换法是工程最有效方法。常见故障排查顺序:供电→复位→焊接→型号→负载电容→波形观察→更换晶振→MCU配置。负载电容需按公式计算匹配,示波器观察是核心测试手段。

jiujiujinyuxi的博客 929

sql练习题

欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入MarkdownText-to-HTMLAuthorsJohnLuke。

weixin_49196517的博客 852

MATLAB实战:利用扫频数据重构系统伯德图的关键步骤

本文详细介绍了如何利用MATLAB处理扫频数据并重构系统伯德图的完整实战流程。内容涵盖数据导入与清洗、增益与相位的精确计算、频率响应数据对象(frd)的构建、数据平滑与插值处理,以及最终生成专业伯德图并进行关键参数(如相位裕度)标注的方法。文章重点解决了从实测“黑盒子”系统数据出发,获取直观频率响应特性曲线的核心问题,为控制系统分析与设计提供了实用指南。

weixin_29098117的博客 399

【无人机智能避障】基于深度强化学习的城市复杂环境路径规划实战

本文探讨了基于深度强化学习的无人机在城市复杂环境中的智能避障与路径规划。针对传统算法难以应对动态与非结构化障碍的痛点,文章详细介绍了如何利用DQN算法,通过设计合理的状态空间、奖励函数,并结合经验回放、目标网络等技巧,训练无人机自主学会在楼宇间安全、高效飞行的策略。

weixin_28224217的博客 737

oracle建表填数查,[数据库]Oracle的关于建表,约束,查询等的练习_星空网

Oracle的关于建表,约束,查询等的练习2013-07-080从建立一个简单表,到实现一些复杂查询的例子,DROP TABLE grade;DROP TABLE item;DROP TABLE sporter;CREATE TABLE sporter(sporteridNUMBER(4)PRIMARY KEY NOT NULL,nameVARCHAR(50)NOT NULL,sex...

weixin_33410492的博客 424

企业微信API实战:解密external_userid的跨应用一致性管理

本文深入探讨企业微信API中external_userid的跨应用一致性管理问题,解析其本质及在不同应用场景下的ID不一致挑战。通过ID转换与统一管理方案,结合unionid实现跨应用客户数据整合,提供实战代码示例和架构设计,助力企业构建高效的客户管理系统。

weixin_29258297的博客 638

Oracle.练习题

2018-07-31 1 ---练习3 2 ---创建sporter表 3 create table sporter( 4 sporterid number(10) constraint sport_id primary key, 5 sname varchar2(20) not null, 6 sex varchar2(10), 7 departm...

JING__12的博客 279

【Milvus】实战指南:利用milvus-backup实现高效数据备份与恢复

本文详细介绍了如何利用官方工具milvus-backup为Milvus向量数据库实施高效的数据备份与恢复。文章从备份的必要性出发,逐步讲解了环境准备、配置要点、全量与按需备份操作,以及恢复数据的关键步骤和验证方法,旨在帮助用户构建可靠的数据安全防线,应对误操作或系统故障风险。

weixin_29217235的博客 133

ORACLE 12C RAC 启动报错,错误代码 ORA-27300,ORA-27301,ORA-27302

非一体机,12.2 无任何补丁,2套X86服务器,1节点集群异常(数据库正常,还有会话),2节点正常工作,负载不高,硬件、空间均未检查到异常,多路径存在掉线的情况,但通过Mulitpath -ll 看又是正常的,2根私有网络,其中一根不同,sysctl中配置的稀疏模式。5、再次加成crs alert ohas等集群日志,以及根据现象和错误再次到后台sr中查找可用信息,发现有一个类似问题,12.2 RAC 无任何补丁,报同样错误,解决方案为重启两套服务器。查询MOS文档以及后台文档,排除上面指出的问题。

weixin_42344665的博客 1465

MySQL数据库知识运用1 建表查询习题

DML DQL 简答题, 实操题 每日更新已学知识及练习内容做题过程分享 巩固已学基础知识

Elysiuml的博客 308

枚举 ACS 电机状态位 完全解析

本文解析了ACS运动控制器SDK中的MotorStates枚举,该枚举对应控制器状态标志位?MFLAGS。主要介绍了6个核心状态:ACSC_ALL(-1)表示所有轴,ACSC_NONE(0)为空闲状态,ACSC_MST_ENABLE(1)为轴使能,ACSC_MST_INPOS(16)表示到位,ACSC_MST_MOVE(32)为运动中,ACSC_MST_ACC(64)为加速中。文章还补充了完整的枚举定义,包含报警、回零等状态,并提供了在晶圆AOI4轴运动中的典型应用场景,如判断轴状态、运动条件等。最后强调只

StevenChen的博客 249

sql(oracle)练习题

** 练习题 ** –1.看到一张新表(或者一套新表)应该做什么 1.首先看表里的字段有什么内容,整张表是关于什么的 2.判断这张表里的首要字段是什么(后边会涉及到主键-即唯一非空的那个字段,能够与其他数据区分开的字段) 3.如果是多张表,判断表与表之间的联系(尤其是通过什么字段有联系) 4.看一下具体内容,哪些字段是主要的,哪些字段是存的具体数据,哪些字段是存的码值 select * from students; select * from courses; select * from scores;

qq_37478222的博客 1621

【中国大学生计算机设计大赛信息可视化赛道】国奖项目深入剖析—中国古代奇异怪兽移动端可视化应用项目

【中国大学生计算机设计大赛信息可视化赛道】国奖项目深入剖析—中国古代奇异怪兽移动端可视化应用项目 注:本文主要目的是对于往年国奖项目案例-可视化项目的深入剖析讲解,对源码、项目特点、要点、特色继续深入分析。帮助大家学习技术,掌握规律。

一键难忘的博客 3731

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

oracle 表关联面试,SQL常见面试题目(多表联查)

对原文章:https://blog.youkuaiyun.com/hou_miao/article/details/78854470,https://blog.youkuaiyun.com/crazygolf/article/details/38989461 进行整理一.学生表(学生id,姓名,性别,分数)student(s_id,name,sex,score)班级表(班级id,班级名称)class(c_id,c_na...

weixin_31736005的博客 1169

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

多表关联练习

INSERT INTO `worker` (`部门号`, `职工号`, `工作时间`, `工资`, `政治面貌`, `姓名`, `出生。INSERT INTO `worker` (`部门号`, `职工号`, `工作时间`, `工资`, `政治面貌`, `姓名`, `出生。INSERT INTO `worker` (`部门号`, `职工号`, `工作时间`, `工资`, `政治面貌`, `姓名`, `出生。素材: 表名:worker-- 表中字段均为中文,比如 部门号 工资 职工号 参加工作 等。

qq_61739597的博客 464

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

Mysql多表联查——经典50题

Mysql多表联查

weixin —> Ryan-0713 7571

oracle 三表关联查询

  oracle 三表关联查询 CreationTime--2018年7月4日17点52分 Author:Marydon 左连接实现三表关联 表A---------------------------------关联第一张表B-----------------------关联第二张表c 1.语法   select * from 表名A left join 表B on A.colu...

weixin_33717117的博客 6461

oracle基础-多表关联查询

多表查询 关联查询 外连接 左外连接 右外连接 子查询 自然连接

geminigoth的博客 6603

Oracle多表联合查询

—多表联合查询: –当需要获取的数据分布在多张中,考虑使用联合查询 –SQL92方式 –SQL99方式 –SQL92方式 –笛卡尔积:将多个表的数据进行一一对应,所得到结果为多表的笛卡尔积。 –结果的数量为所有表的数量的乘积。 select * from emp,dept where emp.deptno=dept.deptno --等值连接筛选 –概念:先做表的笛卡尔积,然后...

大白的博客 4975

Oracle多表联查总结笔记

1.内链接(查询两表共有的数据) (以两表为例) 语法: select 别称1.列名1,…别称2.列名N from 表1 别称1 inner join 表2.别称2 on 别称1.公共列=别称2.公共列 where 查询语句; 例如:查询员工编号,姓名,部门编号以及部门名称 select e.empNo,e.eName,d.deptNo,d.dName from emp e inner jo...

振藩兄的博客 2206

Oracle笔记(六) 多表查询

本次预计讲解的知识点 1、 多表查询的操作、限制、笛卡尔积的问题; 2、 统计函数及分组统计的操作; 3、 子查询的操作,并且结合限定查询、数据排序、多表查询、统计查询一起完成各个复杂查询的操作; 一、多表查询的基本概念 在之前所使用的查询操作之中,都是从一张表之中查询出所需要的内容,那么如果现在一个查询语句需要显示多张表的数据,则就必须应用到多表查询的操作,而多表查询的语法如下: ...

weixin_34351321的博客 1910

Oracle三表查询

--SQL92&99实现三表联合查询 --创建city表,使用图形操作即可 --给city添加测试数据 insert into city values(1,'商丘','历史文明古都'); insert into city values(2,'邯郸','历史文明古都'); insert into city values(3,'洛阳','历史文明古都'); ...

weixin_43421717的博客 790

oracle 三表关联查询 union all和left join 的运用问题详解(仅代表个人)

需求: 现有三张表, oa_fund_pla(简称a)、oa_fund_plan_i(简称b)、oa_fund_plan_ou(简称c) a为主表, 通过requestid与b和c相关联,其中b和c之间的数据没有任何对应关系,但是有一个列名同为amount的列. 刚开始,我只是通过简单的requestid将a与bc相关联 sql如下 SELECT distinct( oa_fund_plan.depmentname) , oa_fund_plan.operatorname , ...

Dominik_haha的博客 4968

运动会

有某个学生运动会比赛信息的数据库,保存了如下的表:   运动员sporter(运动员编号sporterid,运动员姓名name,运动员性别sex,所属系号department) 项目item(项目编号itemid,项目名称itemname,项目比赛地点location) 成绩grade(运动员编号id,项目编号itemid,积分mark)   请用SQL/PLU

离开实践的理论是空洞的理论,没有理论指导的实践是盲目的实践 1725
上一篇: ORACLE经典作业:三表联查:EMP,DEPT,SALGRADE
下一篇: 正则表达式
好好羊
博客等级 码龄5年 5粉丝 16原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

好好羊

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值