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

面试题 相关文章推荐
JRE、JDK、JVM之间的关系怎样
May 16 面试题
定义一结构体数组表示分数,并求两个分数相加之和
Jun 11 面试题
一个SQL面试题
Aug 21 面试题
请解释接口的显式实现有什么意义
May 26 面试题
介绍一下Linux内核的排队自旋锁
Aug 27 面试题
Linux常见面试题
Mar 18 面试题
linux面试相关问题
Apr 28 面试题
Linux如何修改文件和文件夹的权限
Jun 27 面试题
简单叙述一下MYSQL的优化
May 09 面试题
为什么Runtime.exec(“ls”)没有任何输出?
Oct 03 面试题
Java程序员面试90题
Oct 19 面试题
什么是继承
Dec 07 面试题
金蝶的一道SQL笔试题
Dec 18 #面试题
查询优化的一般准则有哪些
Mar 08 #面试题
Sql面试题
Mar 20 #面试题
分布式数据库需要考虑哪些问题
Dec 08 #面试题
什么是事务?为什么需要事务?
Jan 09 #面试题
数据库基础的一些面试题
Feb 25 #面试题
试述DBMS的主要功能
Nov 13 #面试题
You might like
PHP设计模式之迭代器模式的深入解析
2013/06/13 PHP
php操作xml
2013/10/27 PHP
php中使用PHPExcel读写excel(xls)文件的方法
2014/09/15 PHP
PHP针对中英文混合字符串长度判断及截取方法示例
2017/03/31 PHP
event对象的方法 兼容多浏览器
2009/06/27 Javascript
学习ExtJS form布局
2009/10/08 Javascript
关于ExtJS4.1:快捷键支持的问题
2013/04/24 Javascript
JavaScript将XML转成JSON的方法
2015/03/12 Javascript
jQuery的选择器中的通配符[id^='code']或[name^='code']及jquery选择器总结
2015/12/24 Javascript
Bootstrap 组件之按钮(二)
2016/05/11 Javascript
快速解决js动态改变dom元素属性后页面及时渲染的问题
2016/07/06 Javascript
jQGrid动态填充select下拉框的选项值(动态填充)
2016/11/28 Javascript
js中DOM事件绑定分析
2018/03/18 Javascript
浅谈HTTP 缓存的那些事儿
2018/10/17 Javascript
javascript实现计算指定范围内的质数示例
2018/12/29 Javascript
详解JavaScript中new操作符的解析和实现
2020/09/04 Javascript
python3.3实现乘法表示例
2014/02/07 Python
python 用正则表达式筛选文本信息的实例
2018/06/05 Python
python爬虫URL重试机制的实现方法(python2.7以及python3.5)
2018/12/18 Python
Python通过for循环理解迭代器和生成器实例详解
2019/02/16 Python
Python数据类型之String字符串实例详解
2019/05/08 Python
Tensorflow训练MNIST手写数字识别模型
2020/02/13 Python
Python图像处理二值化方法实例汇总
2020/07/24 Python
CSS3实现头像旋转效果
2017/03/13 HTML / CSS
《太阳》教学反思
2014/02/21 职场文书
法律进机关实施方案
2014/03/12 职场文书
广告创意求职信
2014/03/17 职场文书
《称象》教学反思
2014/04/25 职场文书
工程索赔意向书
2014/08/30 职场文书
镇副书记专题民主生活会对照检查材料思想汇报
2014/10/02 职场文书
离婚协议书怎么写的
2014/12/14 职场文书
十佳少年事迹材料
2014/12/25 职场文书
2016教师学习党章心得体会
2016/01/15 职场文书
读《人生的智慧》有感:闲暇是人生的精华
2019/12/25 职场文书
python爬不同图片分别保存在不同文件夹中的实现
2021/04/02 Python
Python 数据科学 Matplotlib图库详解
2021/07/07 Python