一道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...

面试题 相关文章推荐
如何用Lucene索引数据库
Feb 23 面试题
请说出几个常用的异常类
Jan 08 面试题
Java面试题:请问一下代码输出是什么
May 27 面试题
北京银河万佳Java面试题
Mar 21 面试题
我能否用void** 指针作为参数, 使函数按引用接受一般指针
Feb 16 面试题
为什么UNION ALL比UNION快
Mar 17 面试题
.net软件工程师应聘上机试题
Mar 10 面试题
如何为DataGridView添加一个定制的Column Type
Jan 21 面试题
linux面试题参考答案(4)
Sep 21 面试题
什么是Linux虚拟文件系统VFS
Aug 25 面试题
介绍一下EJB的分类及其各自的功能及应用
Aug 23 面试题
J2EE系统只能是基于web
Sep 08 面试题
金蝶的一道SQL笔试题
Dec 18 #面试题
查询优化的一般准则有哪些
Mar 08 #面试题
Sql面试题
Mar 20 #面试题
分布式数据库需要考虑哪些问题
Dec 08 #面试题
什么是事务?为什么需要事务?
Jan 09 #面试题
数据库基础的一些面试题
Feb 25 #面试题
试述DBMS的主要功能
Nov 13 #面试题
You might like
php 远程关机操作的代码
2008/12/05 PHP
使用PHP遍历文件目录与清除目录中文件的实现详解
2013/06/24 PHP
Codeigniter注册登录代码示例
2014/06/12 PHP
php的GD库imagettftext函数解决中文乱码问题
2015/01/24 PHP
PHP实现微信模拟登陆并给用户发送消息的方法【文字,图片,图文】
2017/06/29 PHP
JS 实现列表与多选框选择附预览动画
2014/10/29 Javascript
JavaScript数组常用操作技巧汇总
2014/11/17 Javascript
js+html5获取用户地理位置信息并在Google地图上显示的方法
2015/06/05 Javascript
javascript自动切换焦点控制效果完整实例
2016/02/02 Javascript
通过Tabs方法基于easyUI+bootstrap制作工作站
2016/03/28 Javascript
全面解析JavaScript中“&&”和“||”操作符(总结篇)
2016/07/18 Javascript
Zepto实现密码的隐藏/显示
2017/04/07 Javascript
JavaScript之Date_动力节点Java学院整理
2017/06/28 Javascript
在React中如何优雅的处理事件响应详解
2017/07/24 Javascript
Vue.js中该如何自己维护路由跳转记录
2019/05/19 Javascript
html+jQuery实现拖动滑块图片拼图验证码插件【移动端适用】
2019/09/10 jQuery
详细分析React 表单与事件
2020/07/08 Javascript
vuex刷新后数据丢失的解决方法
2020/10/18 Javascript
微信小程序实现通讯录列表展开收起
2020/11/18 Javascript
vue使用exif获取图片经纬度的示例代码
2020/12/11 Vue.js
python编程-将Python程序转化为可执行程序[整理]
2007/04/09 Python
Python批量重命名同一文件夹下文件的方法
2015/05/25 Python
想学python 这5本书籍你必看!
2018/12/11 Python
python调用Matplotlib绘制分布点图
2019/10/18 Python
Python input函数使用实例解析
2019/11/22 Python
Python FtpLib模块应用操作详解
2019/12/12 Python
Python中base64与xml取值结合问题
2019/12/22 Python
python numpy数组中的复制知识解析
2020/02/03 Python
亚洲在线旅行门户网站:Expedia.com.hk(智游网)
2020/04/14 全球购物
2014全国两会大学生学习心得体会
2014/03/10 职场文书
单位工程竣工验收方案
2014/03/16 职场文书
温馨提示标语
2014/06/26 职场文书
经理助理岗位职责
2015/02/02 职场文书
史上最全的军训拉歌口号
2015/12/25 职场文书
导游词之云南丽江古城
2019/09/17 职场文书
mysql中数据库覆盖导入的几种方式总结
2022/03/25 MySQL