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

面试题 相关文章推荐
一份全面的PHP面试问题考卷
Jul 15 面试题
What is the purpose of Void class? Void类的作用是什么?
Oct 31 面试题
Java里面StringBuilder和StringBuffer有什么区别
Jun 06 面试题
Java TransactionAPI (JTA) 主要包含几部分
Dec 07 面试题
在C语言中实现抽象数据类型什么方法最好
Jun 26 面试题
编写函数,将一个3*3矩阵转置
Oct 09 面试题
将n个数按输入顺序的逆序排列,用函数实现
Nov 14 面试题
C#如何调用Windows程序打开一个文档
Dec 26 面试题
数据库测试通常都包括哪些方面
Nov 30 面试题
软件测试面试题
Oct 21 面试题
如何用JQuery进行表单验证
May 29 面试题
Jdbc数据访问技术面试题
Mar 30 面试题
金蝶的一道SQL笔试题
Dec 18 #面试题
查询优化的一般准则有哪些
Mar 08 #面试题
Sql面试题
Mar 20 #面试题
分布式数据库需要考虑哪些问题
Dec 08 #面试题
什么是事务?为什么需要事务?
Jan 09 #面试题
数据库基础的一些面试题
Feb 25 #面试题
试述DBMS的主要功能
Nov 13 #面试题
You might like
ThinkPHP3.1新特性之G方法的使用
2014/06/19 PHP
php操作redis中的hash和zset类型数据的方法和代码例子
2014/07/05 PHP
php单链表实现代码分享
2016/07/04 PHP
js 实现无缝滚动 兼容IE和FF
2009/07/15 Javascript
javascript URL编码和解码使用说明
2010/04/12 Javascript
JavaScript使用slice函数获取数组部分元素的方法
2015/04/06 Javascript
js去字符串前后空格的实现方法
2016/02/26 Javascript
更靠谱的H5横竖屏检测方法(js代码)
2016/09/13 Javascript
JavaScript之浏览器对象_动力节点Java学院整理
2017/07/03 Javascript
php 解压zip压缩包内容到指定目录的实例
2018/01/23 Javascript
在Vue-cli里应用Vuex的state和mutations方法
2018/09/16 Javascript
vue-cli webpack配置文件分析
2019/05/20 Javascript
详解Vue3.0 前的 TypeScript 最佳入门实践
2019/06/18 Javascript
layui lay-verify form表单自定义验证规则详解
2019/09/18 Javascript
vue路由 遍历生成复数router-link的例子
2019/10/30 Javascript
[01:05:40]VG vs Newbee 2018国际邀请赛小组赛BO2 第二场 8.17
2018/08/20 DOTA
python中去空格函数的用法
2014/08/21 Python
python类继承与子类实例初始化用法分析
2015/04/17 Python
python爬虫之urllib库常用方法用法总结大全
2018/11/14 Python
Python中IP地址处理IPy模块的方法
2019/08/16 Python
tesserocr与pytesseract模块的使用方法解析
2019/08/30 Python
Python通过TensorFLow进行线性模型训练原理与实现方法详解
2020/01/15 Python
Python打印不合法的文件名
2020/07/31 Python
matplotlib之多边形选区(PolygonSelector)的使用
2021/02/24 Python
css3实现冲击波效果的示例代码
2018/01/11 HTML / CSS
html5 制作地图当前定位箭头的方法示例
2020/01/10 HTML / CSS
迪梵英国官方网站:Darphin英国
2017/12/06 全球购物
北美最大的手工艺品零售商之一:Michaels Stores
2019/02/27 全球购物
LN-CC日本:高端男装和女装的奢侈时尚目的地
2019/09/01 全球购物
Urban Decay官方网站:美国化妆品品牌
2020/06/04 全球购物
TCP/IP中的TCP和IP分别承担什么责任
2012/04/21 面试题
医院护士求职自荐信格式
2013/09/21 职场文书
办公室副主任岗位职责
2013/11/25 职场文书
简历的个人自我评价范文
2014/01/03 职场文书
干部作风纪律整顿心得体会
2016/01/23 职场文书
《绝招》教学反思
2016/02/20 职场文书