一道SQL面试题


Posted in 面试题 onDecember 31, 2012
有三张表,学生表S,课程表C,学生课程表SC,学生可以选修多门课程,一门课程可能被多个学生选修,通过SC表关联。
(1) 写出建表以及插入语句;
(2) 写出SQL语句,查询选修了所有选修课程的学生;
(3) 写出SQL语句,查询选修了至少2门以上的课程的学生。
ANSWER:
(1) 写出建表以及插入语句;
/

create table student (
id number(10) primary key,
name varchar2(20));

create table course (
id number(10) primary key,
name varchar2(20));

create table sc(
sid number(10) references student(id),
cid number(10) references course(id),
grade number(42));

INSERT VALUES:

2) 写出SQL语句,查询选修了所有选修课程的学生;

select s.id,s.name
from student s
where s.id in(
select sid
from sc
group by sid
having count(*)=
(select count(*)
from course)
);

(3) 写出SQL语句,查询选修了至少2门以上的课程的学生。

select sid,count(*) from sc group by sid having count(*)>=2;

SELECT S.ID,S.NAME
FROM STUDENT S
WHERE S.ID IN(
select sid
from sc
group by sid
having count(*)>=2
)

drop table student cascade constraints;
drop table course cascade constraints;
drop table sc;

commit;

create table student(
id number(10) primary key,
name varchar2(15)
);

create table course(
id number(10) primary key,
name varchar2(15)
);

create table sc(
sid number(10) references student(id),
cid number(10) references course(id)
);

commit;

insert into student values(1,’star’);
insert into student values(2,’moon’);
insert into student values(3,’oracle’);
insert into student values(4,’sun’);

insert into course values(1,’Java’);
insert into course values(2,’C++’);
insert into course values(3,’Chinese’);
insert into course values(4,’English’);

insert into sc values(1,1);
insert into sc values(1,2);
insert into sc values(1,3);
insert into sc values(1,4);
insert into sc values(2,1);
insert into sc values(2,2);
insert into sc values(2,3);
insert into sc values(3,1);
insert into sc values(3,2);
insert into sc values(4,3);
insert into sc values(4,4);
commit;
;

Tags in this post...

面试题 相关文章推荐
Java里面StringBuilder和StringBuffer有什么区别
Jun 06 面试题
简单介绍Object类的功能、常用方法
Oct 02 面试题
求高于平均分的学生学号及成绩
Sep 01 面试题
估算杭州有多少软件工程师
Aug 11 面试题
C++:memset ,memcpy和strcpy的根本区别
Apr 27 面试题
描述内存分配方式以及它们的区别
Oct 15 面试题
如何提高SQL Server的安全性
Jul 25 面试题
中海讯通笔试题
Sep 15 面试题
简单说下OSPF的操作过程
Aug 13 面试题
如何写一个自定义标签
Dec 28 面试题
中科前程Java笔试题
Nov 20 面试题
介绍一下Java中标识符的命名规则
Feb 03 面试题
金蝶的一道SQL笔试题
Dec 18 #面试题
查询优化的一般准则有哪些
Mar 08 #面试题
Sql面试题
Mar 20 #面试题
分布式数据库需要考虑哪些问题
Dec 08 #面试题
什么是事务?为什么需要事务?
Jan 09 #面试题
数据库基础的一些面试题
Feb 25 #面试题
试述DBMS的主要功能
Nov 13 #面试题
You might like
PHP OPCode缓存 APC详细介绍
2010/10/12 PHP
浅析THINKPHP的addAll支持的最大数据量
2015/02/03 PHP
php中smarty实现多模版网站的方法
2015/06/11 PHP
laravel 实现用户登录注销并限制功能
2019/10/24 PHP
JavaScript国旗变换效果代码
2008/08/13 Javascript
ModelDialog JavaScript模态对话框类代码
2011/04/17 Javascript
js用typeof方法判断undefined类型
2014/07/15 Javascript
javascript闭包的理解
2015/04/01 Javascript
深入浅析JavaScript中prototype和proto的关系
2015/11/15 Javascript
学习javascript文件加载优化
2016/02/19 Javascript
H5移动端适配 Flexible方案
2016/10/24 Javascript
原生JS实现简单放大镜效果
2017/02/08 Javascript
JS Input里添加小图标的两种方法
2017/11/11 Javascript
Vue之mixin全局的用法详解
2018/08/22 Javascript
微信小程序实现两个页面传值的方法分析
2018/12/11 Javascript
vue轻量级框架无法获取到vue对象解决方法
2019/05/12 Javascript
JS+CSS实现过渡特效
2021/01/02 Javascript
Vue如何实现变量表达式选择器
2021/02/18 Vue.js
[01:42]辉夜杯战队访谈宣传片—FANTUAN
2015/12/25 DOTA
python根据距离和时长计算配速示例
2014/02/16 Python
python中文分词,使用结巴分词对python进行分词(实例讲解)
2017/11/14 Python
Python程序退出方式小结
2017/12/09 Python
Python脚本完成post接口测试的实例
2018/12/17 Python
双向RNN:bidirectional_dynamic_rnn()函数的使用详解
2020/01/20 Python
浅析python 动态库m.so.1.0错误问题
2020/05/09 Python
pytorch掉坑记录:model.eval的作用说明
2020/06/23 Python
关于python3.9安装wordcloud出错的问题及解决办法
2020/11/02 Python
英国在线滑雪板和冲浪商店:The Board Basement
2020/01/11 全球购物
如何配置、使用和清除Smarty缓存
2015/12/23 面试题
治超工作实施方案
2014/05/04 职场文书
校园文明标语
2014/06/13 职场文书
争先创优演讲稿
2014/09/15 职场文书
商务英语求职信范文
2015/03/19 职场文书
Keras多线程机制与flask多线程冲突的解决方案
2021/05/28 Python
浅析CSS在DevTools 中架构演变
2021/10/05 HTML / CSS
SpringBoot项目部署到阿里云服务器的实现步骤
2022/06/28 Java/Android