一道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 session
Apr 21 面试题
如何用Lucene索引数据库
Feb 23 面试题
Java和Javasciprt的区别
Sep 02 面试题
实现strstr功能,即在父串中寻找子串首次出现的位置
Aug 05 面试题
杭州时比特电子有限公司SQL
Aug 22 面试题
WINDOWS域的具体实现方式是什么
Feb 20 面试题
密封类可以有虚函数吗
Aug 11 面试题
linux面试题参考答案(1)
Jan 22 面试题
Linux开机引导的步骤是什么
Feb 26 面试题
AJAX应用和传统Web应用有什么不同
Aug 24 面试题
构造方法和其他方法的区别
Apr 26 面试题
中间件的定义
Aug 09 面试题
金蝶的一道SQL笔试题
Dec 18 #面试题
查询优化的一般准则有哪些
Mar 08 #面试题
Sql面试题
Mar 20 #面试题
分布式数据库需要考虑哪些问题
Dec 08 #面试题
什么是事务?为什么需要事务?
Jan 09 #面试题
数据库基础的一些面试题
Feb 25 #面试题
试述DBMS的主要功能
Nov 13 #面试题
You might like
PHP教程 预定义变量
2009/10/23 PHP
php设计模式 Proxy (代理模式)
2011/06/26 PHP
在PHP语言中使用JSON和将json还原成数组的方法
2016/07/19 PHP
PHP检查网站是否宕机的方法示例
2017/07/24 PHP
javascript XML数据显示为HTML一例
2008/12/23 Javascript
javascript之bind使用介绍
2011/10/09 Javascript
qq悬浮代码(兼容各个浏览器)
2014/01/29 Javascript
JavaScript cookie的设置获取删除详解
2014/02/11 Javascript
jQuery多项选项卡的实现思路附样式及代码
2014/06/03 Javascript
javascript中加号(+)操作符的一些神奇作用
2014/06/06 Javascript
jQuery Migrate 1.1.0 Released 注意事项
2014/06/14 Javascript
js判断当页面无法回退时关闭网页否则就history.go(-1)
2014/08/07 Javascript
jQuery操作cookie方法实例教程
2014/11/25 Javascript
jquery实现仿JqueryUi可拖动的DIV实例
2015/07/31 Javascript
jQuery实现本地预览上传图片功能
2016/01/08 Javascript
javascript cookie的简单应用
2016/02/24 Javascript
深入理解JS实现快速排序和去重
2016/10/17 Javascript
Bootstrap基本组件学习笔记之列表组(11)
2016/12/07 Javascript
关于在mongoose中填充外键的方法详解
2017/08/14 Javascript
解决layui中的form表单与button的点击事件冲突问题
2018/08/15 Javascript
JS中的一些常用的函数式编程术语
2019/06/15 Javascript
vue使用websocket的方法实例分析
2019/06/22 Javascript
javascript面向对象三大特征之继承实例详解
2019/07/24 Javascript
JS中间件设计模式的深入探讨与实例分析
2020/04/11 Javascript
手写Vue2.0 数据劫持的示例
2021/03/04 Vue.js
CentOS中升级Python版本的方法详解
2017/07/10 Python
Python3 利用requests 库进行post携带账号密码请求数据的方法
2018/10/26 Python
这可能是最好玩的python GUI入门实例(推荐)
2019/07/19 Python
python实现画出e指数函数的图像
2019/11/21 Python
解决torch.autograd.backward中的参数问题
2020/01/07 Python
Python flask框架实现浏览器点击自定义跳转页面
2020/06/04 Python
关于逃课的检讨书
2014/01/23 职场文书
2014中考励志标语
2014/06/05 职场文书
音乐教育专业自荐信
2014/09/18 职场文书
Html5生成验证码的示例代码
2021/05/10 Javascript
探究Mysql模糊查询是否区分大小写
2021/06/11 MySQL