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

面试题 相关文章推荐
HashMap和Hashtable的区别
May 18 面试题
简单介绍Object类的功能、常用方法
Oct 02 面试题
SQL Server数据库笔试题和答案
Feb 04 面试题
北京RT科技有限公司.net工程师面试题
Feb 15 面试题
什么是命名空间(NameSpace)
Nov 24 面试题
端口镜像是怎么实现的
Mar 25 面试题
linux面试题参考答案(8)
Aug 11 面试题
软件测试面试题
Jan 05 面试题
为什么要用EJB
Apr 17 面试题
Java中各种基本数据类型的默认值都是什么
Dec 22 面试题
Java语言程序设计测试题改错题部分
Jul 22 面试题
Java面试笔试题大全
Nov 23 面试题
金蝶的一道SQL笔试题
Dec 18 #面试题
查询优化的一般准则有哪些
Mar 08 #面试题
Sql面试题
Mar 20 #面试题
分布式数据库需要考虑哪些问题
Dec 08 #面试题
什么是事务?为什么需要事务?
Jan 09 #面试题
数据库基础的一些面试题
Feb 25 #面试题
试述DBMS的主要功能
Nov 13 #面试题
You might like
PHP数据库开发知多少
2006/10/09 PHP
PHP中判断变量为空的几种方法分享
2013/08/26 PHP
PHP实现取得HTTP请求的原文
2014/08/18 PHP
服务器迁移php版本不同可能诱发的问题
2015/12/22 PHP
AJAX PHP无刷新form表单提交的简单实现(推荐)
2016/09/09 PHP
微信公众号模板消息群发php代码示例
2016/12/29 PHP
Jquery 实现Tab效果 思路是js思路
2010/03/02 Javascript
JSQL 批量图片切换的实现代码
2010/05/05 Javascript
在JavaScript中实现类的方式探讨
2013/08/28 Javascript
关于onchange事件在IE和FF下的表现及解决方法
2014/03/08 Javascript
有效提高JavaScript执行效率的几点知识
2015/01/31 Javascript
jQuery表格行上移下移和置顶的实现方法
2015/10/08 Javascript
限制复选框最多选择项的实现代码
2016/05/30 Javascript
基于JavaScript实现轮播图原理及示例
2020/04/10 Javascript
使用vue构建一个上传图片表单
2017/07/04 Javascript
详解Vue用cmd创建项目
2019/02/12 Javascript
Layui tree 下拉菜单树的实例代码
2019/09/21 Javascript
在vue中阻止浏览器后退的实例
2019/11/06 Javascript
Vue3配置axios跨域实现过程解析
2020/11/25 Vue.js
利用Python抓取行政区划码的方法
2016/11/28 Python
详解python脚本自动生成需要文件实例代码
2017/02/04 Python
python opencv3实现人脸识别(windows)
2018/05/25 Python
Python多线程编程之多线程加锁操作示例
2018/09/06 Python
python针对不定分隔符切割提取字符串的方法
2018/10/26 Python
Python实现的在特定目录下导入模块功能分析
2019/02/11 Python
Python元组知识点总结
2019/02/18 Python
Python pandas实现excel工作表合并功能详解
2019/08/29 Python
python使用selenium爬虫知乎的方法示例
2020/10/28 Python
美国最好的钓鱼、狩猎和划船装备商店:Bass Pro Shops
2018/12/02 全球购物
亚洲领先的设计购物网站:Pinkoi
2020/11/26 全球购物
如何实现一个自定义类的序列化
2012/05/22 面试题
2013年高中生自我评价
2013/10/23 职场文书
快递业务员岗位职责
2014/01/06 职场文书
医院标语大全
2014/06/23 职场文书
golang如何去除多余空白字符(含制表符)
2021/04/25 Golang
MyBatis 动态SQL全面详解
2021/10/05 MySQL