一道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如何删除一个Cookie值
Nov 15 面试题
解释一下ArrayList Vector和LinkedList的实现和区别
Apr 26 面试题
上海方立数码笔试题
Oct 18 面试题
浙大网新C/C++面试解惑
May 27 面试题
C++:memset ,memcpy和strcpy的根本区别
Apr 27 面试题
请写出 float x 与"零值"比较的 if 语句
Jan 04 面试题
什么是唯一索引
Jul 05 面试题
网络技术支持面试题
Apr 22 面试题
动态密码技术
Oct 18 面试题
简述进程的启动、终止的方式以及如何进行进程的查看
Jul 12 面试题
分别介绍一下Session Bean和Entity Bean
Mar 13 面试题
Delphi笔试题
Nov 14 面试题
金蝶的一道SQL笔试题
Dec 18 #面试题
查询优化的一般准则有哪些
Mar 08 #面试题
Sql面试题
Mar 20 #面试题
分布式数据库需要考虑哪些问题
Dec 08 #面试题
什么是事务?为什么需要事务?
Jan 09 #面试题
数据库基础的一些面试题
Feb 25 #面试题
试述DBMS的主要功能
Nov 13 #面试题
You might like
PHP统计目录下的文件总数及代码行数(去除注释及空行)
2011/01/17 PHP
PHP CodeBase:将时间显示为"刚刚""n分钟/小时前"的方法详解
2013/06/06 PHP
PHP中func_get_args(),func_get_arg(),func_num_args()的区别
2013/09/30 PHP
PHP使用array_merge重新排列数组下标的方法
2015/07/22 PHP
php中foreach结合curl实现多线程的方法分析
2016/09/22 PHP
PHP中获取文件创建日期、修改日期、访问时间的方法
2016/11/05 PHP
PHP从零开始打造自己的MVC框架之路由类实现方法分析
2019/06/03 PHP
IE与Firefox下javascript getyear年份的兼容性写法
2007/12/20 Javascript
javascript+xml技术实现分页浏览
2008/07/27 Javascript
javascript获取当前日期时间及其它操作函数
2011/01/11 Javascript
基于JQuery的列表拖动排序实现代码
2013/10/01 Javascript
Jquery 获取指定标签的对象及属性的设置与移除
2014/05/29 Javascript
JS基于cookie实现来宾统计记录访客信息的方法
2015/08/04 Javascript
基于javascript如何传递特殊字符
2015/11/30 Javascript
js操作数据库实现注册和登陆的简单实例
2016/05/26 Javascript
AngularJS封装指令方法详解
2016/12/12 Javascript
Vue中添加过渡效果的方法
2017/03/16 Javascript
移动设备手势事件库Touch.js使用详解
2017/08/18 Javascript
JQuery判断正整数整理小结
2017/08/21 jQuery
JavaScript JMap类定义与使用方法示例
2019/01/22 Javascript
JS中async/await实现异步调用的方法
2019/08/28 Javascript
小程序websocket心跳库(websocket-heartbeat-miniprogram)
2020/02/23 Javascript
Python subprocess模块学习总结
2014/03/13 Python
Python实现向QQ群成员自动发邮件的方法
2014/11/19 Python
python将字典内容存入mysql实例代码
2018/01/18 Python
python交易记录链的实现过程详解
2019/07/03 Python
django将数组传递给前台模板的方法
2019/08/06 Python
TensorFlow2.0:张量的合并与分割实例
2020/01/19 Python
Pytorch 扩展Tensor维度、压缩Tensor维度的方法
2020/09/09 Python
python 绘制正态曲线的示例
2020/09/24 Python
如何在vscode中安装python库的方法步骤
2021/01/06 Python
澳大利亚制造的羊皮靴:Original UGG Boots
2017/11/13 全球购物
消防安全管理制度
2014/02/01 职场文书
2014年个人债务授权委托书范本
2014/09/22 职场文书
单位收入证明范本
2015/06/18 职场文书
500字作文之周记
2019/12/13 职场文书