一道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中的Class类
Apr 10 面试题
c/c++某大公司的两道笔试题
Feb 02 面试题
以下的初始化有什么区别
Dec 16 面试题
2019年c语言经典面试题目
Aug 17 面试题
什么是事务?为什么需要事务?
Jan 09 面试题
Javascript如何发送一个Ajax请求
Jan 26 面试题
介绍一下Linux文件的记录形式
Apr 18 面试题
中科方德软件测试面试题
Apr 21 面试题
北京麒麟网信息技术有限公司网络游戏测试面试题
Sep 28 面试题
AJAX的优缺点都有什么
Aug 18 面试题
Java Servlet API中forward() 与redirect()的区别
Apr 20 面试题
Servlet面试题库
Jul 18 面试题
金蝶的一道SQL笔试题
Dec 18 #面试题
查询优化的一般准则有哪些
Mar 08 #面试题
Sql面试题
Mar 20 #面试题
分布式数据库需要考虑哪些问题
Dec 08 #面试题
什么是事务?为什么需要事务?
Jan 09 #面试题
数据库基础的一些面试题
Feb 25 #面试题
试述DBMS的主要功能
Nov 13 #面试题
You might like
2021年最新CPU天梯图
2021/03/04 数码科技
PHP 魔术函数使用说明
2010/05/14 PHP
为IP查询添加GOOGLE地图功能的代码
2010/08/08 PHP
PHP单元测试配置与使用方法详解
2019/12/27 PHP
Javascript调用C#代码
2011/01/17 Javascript
javascript算法题 求任意一个1-9位不重复的N位数在该组合中的大小排列序号
2012/07/21 Javascript
jquery禁用右键单击功能屏蔽F5刷新
2014/03/17 Javascript
利用jQuery实现漂亮的圆形进度条倒计时插件
2015/09/30 Javascript
JS实现支持Ajax验证的表单插件
2016/03/24 Javascript
类似于QQ的右滑删除效果的实现方法
2016/10/16 Javascript
Bootstrap进度条实现代码解析
2017/03/07 Javascript
js实现图片3D轮播效果
2019/09/21 Javascript
vue-cli3 引入 font-awesome的操作
2020/08/11 Javascript
JS时间戳与日期格式互相转换的简单方法示例
2021/01/30 Javascript
[52:57]2014 DOTA2国际邀请赛中国区预选赛 LGD-CDEC VS HGT
2014/05/21 DOTA
python绘制中国大陆人口热力图
2018/11/07 Python
python递归下载文件夹下所有文件
2019/08/31 Python
numpy:np.newaxis 实现将行向量转换成列向量
2019/11/30 Python
Python log模块logging记录打印用法解析
2020/01/20 Python
Python面向对象程序设计之私有变量,私有方法原理与用法分析
2020/03/23 Python
Django视图、传参和forms验证操作
2020/07/15 Python
python 解决selenium 中的 .clear()方法失效问题
2020/09/01 Python
4款Python 类型检查工具,你选择哪个呢?
2020/10/30 Python
css 元素选择器的简单实例
2016/05/23 HTML / CSS
分享全球十款超强HTML5开发工具
2014/05/14 HTML / CSS
html5 figure和figcaption的使用方法
2018/09/10 HTML / CSS
实习生体会的自我评价范文
2013/11/28 职场文书
给小学生的新年寄语
2014/04/04 职场文书
小学班主任寄语大全
2014/04/04 职场文书
建筑投标担保书
2014/05/20 职场文书
《周恩来的四个昼夜》观后思想汇报范文两篇
2014/09/10 职场文书
领导班子三严三实对照检查材料
2014/09/25 职场文书
高中教师个人工作总结
2015/02/10 职场文书
MySQL基础(二)
2021/04/05 MySQL
面试被问select......for update会锁表还是锁行
2021/11/11 MySQL
「睡美人」爱洛公主粘土人开订
2022/03/22 日漫