Oracle经典查询案例

1.创建一个学生管理数据库,名称为student

2.最少包含一下三张表

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

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

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

查询题目

1. 找出没有选修过“张三”老

师讲授课程的所有学生姓名

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

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

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

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

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

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

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

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

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

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

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

5) 列出“1”号课成绩比“2”号课成绩高的所有学生的学号。

1.select sname from s where sno not in (select sno from sc where cno in (select cno from c where cteacher=‘李明‘))

2.select sname,(select avg(scgrade) from sc where sno=s.sno) from s where (select count(*) from sc where sno=s.sno and scgrade<60)>=2

3.select sname from s where sno in (select sno from sc where cno=1 or cno=2)

4.select sname from s where sno in (select sno from sc where cno=1 and scgrade>(select scgrade from sc where sno=2 and cno=1))

5.select sname from s where (select scgrade from sc where sno=s.sno and cno=1)>(select scgrade from sc where sno=s.sno and cno=2)

Oracle经典查询案例

时间: 2024-08-03 17:22:15

Oracle经典查询案例的相关文章

Oracle left查询案例

select ano,sum(nvl(dmoney,0)) summoney from( select t2.ano,d.dmoney from ( select t1.*,c.cno from( select a.ano,b.bno from t_a a left join t_b b on a.ano=b.ano )t1 left join t_c c on t1.bno=c.bno )t2 left join t_d d on t2.cno=d.cno )group by ano;

数据库编程3 Oracle 子查询 insert update delete 事务 回收站 字段操作 企业级项目案例

[本文谢绝转载原文来自http://990487026.blog.51cto.com] <大纲> 数据库编程3 Oracle 子查询 insert update delete 事务 回收站 字段操作 企业级项目案例 实验所用数据表 子查询,解决一步不能求解 查询工资比scott高的员工信息: 子查询知识体系搭建: 解释3,查询部门是sales的员工信息: 方法1:子查询 [方法2]:多表: 优化考虑: 解释4[select],只能放单行子查询 解释4[from] 考题:显示员工姓名,薪水 解释

Oracle SQL:经典查询练手第一篇

讨论一些常见的SQL经典查询 使用Oracle的Scott用户 表结构如下: emp表 dept表 工资=薪金+佣金 工资=sal+comm 表中数据如下: emp: dept: 问题列表: 用SQL完成以下问题列表: 列出至少有一个员工的所有部门. 列出薪金比“SMITH”多的所有员工. 列出所有员工的姓名及其直接上级的姓名. 列出受雇日期早于其直接上级的所有员工. 列出部门名称和这些部门的员工信息,同时列出那些没有员工的部门 列出所有“CLERK”(办事员)的姓名及其部门名称. 列出最低薪金

Oracle SQL 经典查询练手第三篇

Oracle SQL 经典查询练手第三篇 本文分享的是Oracle SQL的经典查询第三篇,仅仅是作者自己的见解,如有问题,希望您给出建议或者方法.同时,欢迎广大读者们补充,如果您有经典的查询方式也可以拿出来我们共同分享,共同成长,共同进步. 本计算机上使用的是Oracle 11.2.0版本,使用scott用户登陆.使用的是系统自带的表. 表结构: describe employees; describe departments; describe locations; select *from

JSP与oracle数据库交互案例

本案例为咖啡销售情况录入查询系统 一.数据输入系统: 1.  设计输入信息页面 代码如下: <html> <head> </head> <body> <center><H1>咖啡管理系统--录入系统</H1></center> 欢迎来到录入系统<br /> <form action="inputaction.jsp" method="post" name

Oracle Study之案例--数据恢复神器Flashback(1)

Oracle Study之案例--数据恢复神器Flashback(1) Flashback: Flashback 技术是以Undo segment中的内容为基础的, 因此受限于UNDO_RETENTON参数.要使用flashback 的特性,必须启用自动撤销管理表空间. 在Oracle 11g里又出了一个新特性:Oracle Flashback Data Archive. FDA通过将变化数据另外存储到创建的闪回归档区(Flashback Archive)中,以和undo区别开来,这样就可以为闪

Oracle Study之案例--Oracle 11g DataGuard Snapshot Standby

Oracle Study之案例--Oracle 11g  DataGuard Snapshot Standby Oracle 11g的Data Guard不仅仅带给我们的是Active Data Guard实时查询特性,同时还带来了另外一个新特性,这便是Snapshot Standby数据库功能,此项功能可将备库置身于"可读写状态"用于不方便在生产环境主库中测试的内容,比如模拟上线测试等任务.当备库读写状态下任务完成后,可以非常轻松的完成Snapshot Standby数据库角色切换回

Oracle经典SQL

最近本人整理了一些Oracle sql,现分享给大家,后续还会更新.如果有错误的地方,请指正,共同学习.贴上去的sql都是我测试过的,大家可以粘贴在自己的电脑上试试. 1.查询部门的名称,及最低收入雇员姓名,要进行表关联 select e.deptno,min(e.sal) from emp e group by e.deptno; select ee.ename, d.dname,ee.sal from emp ee ,dept d where ee.deptno = d.deptno and

Oracle数据库游标案例讲解与源码 (2)

关于此案例的详细分析,请参看  <Oracle数据库游标案例讲解与源码>一文 http://blog.csdn.net/sinat_26342009/article/details/45199827 案例要求: 利用游标转换两张表的数据. 首先,将满足以下三个条件的数据插入到一张新表(productinfo_tmp)中 : <1>价格大于1000 <2>产地为"中国"或"杭州" <3> 商品类型为"家电&qu