1、题目要求

已知关系模式:
S (SNO,SNAME)学生关系。SNO 为学号,SNAME 为姓名
C (CNO,CNAME,CTEACHER)课程关系。CNO 为课程号,CNAME 为课程名,CTEACHER 为任课教师
SC(SNO,CNO,SCGRADE) 选课关系。SCGRADE 为成绩

  • 1.找出没有选修过“刘备”老师讲授课程的所有学生姓名
  • 2.列出有二门以上(含两门)不及格课程的学生姓名及其平均成绩
  • 3.列出既学过“c001”号课程,又学过“c002”号课程的所有学生姓名
  • 4.列出“c001”号课成绩比“s002”号同学该门课成绩高的所有学生的学号
  • 5.列出“c001”号课成绩比“c002”号课成绩高的所有学生的学号及其“1”号课和“2”号课的成绩

2、建表语句

create table C
(
  cno      ),
  cname    ),
  cteacher )
)
;
comment on column C.cno
  is '课程号';
comment on column C.cname
  is '课程名';
comment on column C.cteacher
  is '任课教师';

create table S
(
  sno   ),
  sname )
)
;
comment on column S.sno
  is '学号';
comment on column S.sname
  is '姓名';

create table SC
(
  sno     ),
  cno     ),
  scgrade )
)
;
comment on column SC.scgrade
  is '成绩';

insert into C (cno, cname, cteacher)
values ('c001', '语文', '刘备');
insert into C (cno, cname, cteacher)
values ('c002', '数学', '关于');
insert into C (cno, cname, cteacher)
values ('c003', '英语', '张飞');
commit;

insert into S (sno, sname)
values ('s001', '小红');
insert into S (sno, sname)
values ('s002', '小明');
insert into S (sno, sname)
values ('s003', '小庄');
commit;

insert into SC (sno, cno, scgrade)
');
insert into SC (sno, cno, scgrade)
');
insert into SC (sno, cno, scgrade)
');
insert into SC (sno, cno, scgrade)
');
insert into SC (sno, cno, scgrade)
');
insert into SC (sno, cno, scgrade)
');
insert into SC (sno, cno, scgrade)
');
insert into SC (sno, cno, scgrade)
');
commit;

3、参考答案

--1.找出没有选修过“刘备”老师讲授课程的所有学生姓名
select sname
  from s
 where not exists (select *
          from sc, c
         where sc.cno = c.cno
           and c.cteacher = '刘备'
           and sc.sno = s.sno)

--2.列出有二门以上(含两门)不及格课程的学生姓名及其平均成绩
select s.sno, s.sname, Avg(sc.scgrade)
  from sc,
       s,
       (select sc.sno
          from sc

         group by sno
        ) A
 where sc.sno = A.sno
   and s.sno = A.sno
 group by s.sno, s.sname

--3.列出既学过“c001”号课程,又学过“c002”号课程的所有学生姓名
select *
  from s,
       (select sc.sno
          from sc, c
         where sc.cno = c.cno
           and c.cno in ('c001', 'c002')
         group by sc.sno
        ) A
 where s.sno = A.sno

--4.列出“c001”号课成绩比“s002”号同学该门课成绩高的所有学生的学号
select s.sno
  from s, sc sc1, sc sc2
 where sc1.cno = 'c001'
   and sc2.sno = 's002'
   and s.sno = sc1.sno
   and sc1.cno = sc2.cno
   and sc1.scgrade > sc2.scgrade

--5.列出“c001”号课成绩比“c002”号课成绩高的所有学生的学号及其“1”号课和“2”号课的成绩
select sc1.sno, sc1.scgrade, sc2.scgrade
  from sc sc1, sc sc2
 where sc1.cno = 'c001'
   and sc2.cno = 'c002'
   and sc1.sno = sc2.sno
   and sc1.scgrade > sc2.scgrade

oracle面试题1的更多相关文章

  1. oracle 笔试题

    ORACLE笔试题一.单选题1.在Oracle中,以下不属于集合操作符的是( ). A. UNION B. SUM C. MINUS D. INTERSECT2.在Oracle中,执行下面的语句:SE ...

  2. 部分常见ORACLE面试题以及SQL注意事项

    部分常见ORACLE面试题以及SQL注意事项 一.表的创建: 一个通过单列外键联系起父表和子表的简单例子如下: CREATE TABLE parent(id INT NOT NULL, PRIMARY ...

  3. Oracle笔试题库 附参考答案

    1.  下列不属于ORACLE的逻辑结构的是(C) 区 段 数据文件 表空间 2. 下面哪个用户不是ORACLE缺省安装后就存在的用户(A) A . SYSDBA B. SYSTEM C. SCOTT ...

  4. 转://云和恩墨的两道Oracle面试题

    真题1. 对于一个NUMBER(1)的列,如果查询中的WHERE条件分别是大于3和大于等于4,那么这二者是否等价? 答案:首先对于查询结果而言,二者没有任何区别.从这一点上讲无论是指定大于3还是指定大 ...

  5. oracle sql试题

    转载 数据准备 create table student(  sno varchar2(10) primary key,  sname varchar2(20),  sage number(3),  ...

  6. 【Java EE 学习 28 下】【Oracle面试题2道】【Oracle练习题3道】

    一.已知程序和数据 create table test1 (id int primary key, name ), money int); ,); ,); ,); ,); 要求根据下图写出相应的sql ...

  7. oracle 面试题

    1.对数据库SQL2005.ORACLE熟悉吗?   SQL2005是微软公司的数据库产品.是一个RDBMS数据库,一般应用在一些中型数据库的应用,不能跨平台.   ORACLE是ORACLE公司的数 ...

  8. Oracle笔试题库之问答题篇-总共60道

    1.把表A从表空间TSP1更改成表空间TSP2的方法 解答:alter table A move tablespace TSP2 2.删除表的列: 解答:alert table 表名 drop 列名 ...

  9. Oracle面试题(基础篇)

    1. Oracle跟SQL Server 2005的区别? 宏观上: 1). 最大的区别在于平台,oracle可以运行在不同的平台上,sql server只能运行在windows平台上,由于windo ...

  10. Oracle面试题及答案整理

    一下题目根据此表变换 1.表:table1(FId,Fclass,Fscore),用最高效最简单的SQL列出各班成绩最高的列表,显示班级,成绩两个字段. select stu_class, max(s ...

随机推荐

  1. python经典小程序集锦(一) 实现九九乘法表

    本篇文章主要是收集整理一些小程序以供大家娱乐,或者是在面试的时候使用到.文章会持续更新,希望大家收藏关注哦. 1.代码实现过程 for i in range(1, 10): for j in rang ...

  2. hdu 3364 高斯入门。。

    扣了一个高斯的介绍 比较全面(来自http://blog.csdn.net/duanxian0621/article/details/7408887) 高斯消元法,是线性代数中的一个算法,可用来求解线 ...

  3. luogu1005矩阵取数游戏题解--区间DP

    题目链接 https://www.luogu.org/problemnew/show/P1005 分析 忽然发现这篇题解好像并没有什么意义...因为跟奶牛零食那道题一模一样,博主比较懒如果您想看题解的 ...

  4. javaIO——概述

    以前看java书,都将IO作为一个大的章节甚至模块来编写,可见IO在java语言中的重要性. java的流按功能和处理的目标数据不同可以分为字节流和字符流.字符流处理的基本数据单元是字符:字节流处理的 ...

  5. php实现拼图滑块验证的思考及部分实现

    实现拼图滑块验证,我觉得其中比较关键的一点就是裁剪图片,最起码需要裁剪出下面两张图的样子 底图 滑块图 一张底图和一张滑块图,其中底图实现起来比较简单可以使用添加水印的方式直接将一张拼图形状的半透明图 ...

  6. TypeScript入门二:基本数据类型

    浅析基本数据类型 TypeScript类型解析 一.浅析基本数据类型 首先有一个问题TypeScript是一门编译型语言?还是解释性语言?显然已经不能被这两个分类来区分,TypeScript的并不是为 ...

  7. elementui-插槽

    <el-table-column label="操作"> <template slot-scope="scope"> <el-bu ...

  8. 数据分析基础之pandas & numpy

    一.jupyter的常用快捷键 - 插入cell: a, b   a是after从后插入  a是before 从前插入 - 删除cell: dd, x 都可以 - 修改cell的模式:m, y - t ...

  9. vue+element-ui upload图片上传前大小超过4m,自动压缩到指定大小,长宽

    最近项目需要实现一个需求,用户上传图片时,图片大小超过4M,长宽超过2000,需要压缩到400k,2000宽高.在git上找到一个不错的方法,把实现方法总结一下: 安装image-conversion ...

  10. 【github】github的使用

    一.上传本地代码 1.在github上新建一个repository(命名为英文) 2.打开cmd,进入上传代码所在目录 3.输入如下命令 第一步:git init --建仓第二步:git add  * ...