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

面试题 相关文章推荐
写一个方法1000的阶乘
Nov 21 面试题
广州御银科技股份有限公司试卷(C++)
Nov 04 面试题
网络通讯中,端口有什么含义,端口的取值范围
Nov 23 面试题
了解AppleTalk协议吗
Apr 01 面试题
C# Debug和Testing相关面试题
Oct 25 面试题
简述安装Slackware Linux系统的过程
Jan 12 面试题
几个Linux面试题笔试题
Dec 01 面试题
智乐游戏测试笔试题
May 21 面试题
EJB的激活机制
Oct 25 面试题
EJB的角色和三个对象
Dec 31 面试题
写一个函数,要求输入一个字符串和一个字符长度,对该字符串进行分隔
Jul 30 面试题
如何写出好的Java代码
Apr 25 面试题
金蝶的一道SQL笔试题
Dec 18 #面试题
查询优化的一般准则有哪些
Mar 08 #面试题
Sql面试题
Mar 20 #面试题
分布式数据库需要考虑哪些问题
Dec 08 #面试题
什么是事务?为什么需要事务?
Jan 09 #面试题
数据库基础的一些面试题
Feb 25 #面试题
试述DBMS的主要功能
Nov 13 #面试题
You might like
开启PHP的伪静态模式
2015/12/31 PHP
使用PHP开发留言板功能
2019/11/19 PHP
Thinkphp框架+Layui实现图片/文件上传功能分析
2020/02/07 PHP
JavaScript中String和StringBuffer的速度之争
2010/04/01 Javascript
JQuery Study Notes 学习笔记(一)
2010/08/04 Javascript
Wordpress ThickBox 点击图片显示下一张图的修改方法
2010/12/11 Javascript
json数据的列循环示例
2013/09/06 Javascript
js中实现字符串和数组的相互转化详解
2016/01/24 Javascript
jQuery遍历DOM元素与节点方法详解
2016/04/14 Javascript
限制复选框最多选择项的实现代码
2016/05/30 Javascript
javascript阻止事件冒泡和浏览器的默认行为
2017/01/21 Javascript
canvas绘制的直线动画
2017/01/23 Javascript
vue-router动态设置页面title的实例讲解
2018/08/30 Javascript
jQuery插件实现的日历功能示例【附源码下载】
2018/09/07 jQuery
vue项目中实现图片预览的公用组件功能
2018/10/26 Javascript
基于vue2的canvas时钟倒计时组件步骤解析
2018/11/05 Javascript
vue中如何去掉空格的方法实现
2018/11/09 Javascript
详解js静态检查工具eslint配置文件
2018/11/23 Javascript
angular 实现下拉列表组件的示例代码
2019/03/09 Javascript
Vue extend的基本用法(实例详解)
2019/12/09 Javascript
H5实现手机拍照和选择上传功能
2019/12/18 Javascript
linux系统使用python监控apache服务器进程脚本分享
2014/01/15 Python
python去重,一个由dict组成的list的去重示例
2019/01/21 Python
python TF-IDF算法实现文本关键词提取
2019/05/29 Python
wxpython布局的实现方法
2019/11/01 Python
如何更改 pandas dataframe 中两列的位置
2019/12/27 Python
解决pyCharm中 module 调用失败的问题
2020/02/12 Python
Python3.7实现验证码登录方式代码实例
2020/02/14 Python
python爬虫用scrapy获取影片的实例分析
2020/11/23 Python
python 合并多个excel中同名的sheet
2021/01/22 Python
CSS3制作炫酷的自定义发光文字
2016/03/28 HTML / CSS
HTML5之SVG 2D入门9—蒙板及mask元素介绍与应用
2013/01/30 HTML / CSS
泰国国际航空公司官网:Thai Airways International
2019/12/04 全球购物
试用期员工工作自我评价
2014/09/10 职场文书
领导干部“四风”查摆问题个人整改措施
2014/10/28 职场文书
学生检讨书如何写
2014/10/30 职场文书