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

面试题 相关文章推荐
康拓普公司Java笔面试
Sep 23 面试题
什么是唯一索引
Jul 05 面试题
西部世纪面试题
Dec 05 面试题
.NET是怎么支持多种语言的
Feb 24 面试题
什么是跨站脚本攻击
Dec 11 面试题
Linux机考试题
Jul 17 面试题
如何查看在weblogic中已经发布的EJB
Jun 01 面试题
几个常见的消息中间件(MOM)
Jan 08 面试题
EntityManager都有哪些方法
Nov 01 面试题
中间件的定义
Aug 09 面试题
内部类的定义、种类以及优点
Oct 16 面试题
中软国际Java程序员机试题
Aug 19 面试题
金蝶的一道SQL笔试题
Dec 18 #面试题
查询优化的一般准则有哪些
Mar 08 #面试题
Sql面试题
Mar 20 #面试题
分布式数据库需要考虑哪些问题
Dec 08 #面试题
什么是事务?为什么需要事务?
Jan 09 #面试题
数据库基础的一些面试题
Feb 25 #面试题
试述DBMS的主要功能
Nov 13 #面试题
You might like
新浪微博API开发简介之用户授权(PHP基础篇)
2011/09/25 PHP
PHP抓屏函数实现屏幕快照代码分享
2014/01/02 PHP
高性能PHP框架Symfony2经典入门教程
2014/07/08 PHP
php使用fgetcsv读取csv文件出现乱码的解决方法
2014/11/08 PHP
PHP中浮点数计算比较及取整不准确的解决方法
2015/01/09 PHP
php实现网页端验证码功能
2017/07/11 PHP
PHP删除数组中指定值的元素常用方法实例分析【4种方法】
2018/08/21 PHP
JS实现两个大数(整数)相乘
2014/04/28 Javascript
使用JQuery库提供的扩展功能实现自定义方法
2014/09/09 Javascript
Javascript中的apply()方法浅析
2015/03/15 Javascript
弹出遮罩层后禁止滚动效果【实现代码】
2016/04/29 Javascript
详解Backbone.js框架中的模型Model与其集合collection
2016/05/05 Javascript
jQuery 生成svg矢量二维码
2016/08/09 Javascript
jQuery滚动监听实现商城楼梯式导航效果
2017/03/06 Javascript
js实现手机发送验证码功能
2017/03/13 Javascript
javascript 数据存储的常用函数总结
2017/06/01 Javascript
vue之将echart封装为组件
2018/06/02 Javascript
Jquery异步上传文件代码实例
2019/11/13 jQuery
JavaScript实现横版菜单栏
2020/03/17 Javascript
Typescript3.9 常用新特性一览(推荐)
2020/05/14 Javascript
在vue中实现禁止回退上一步,路由不存历史记录
2020/07/22 Javascript
学习python 之编写简单乘法运算题
2016/02/27 Python
python分割列表(list)的方法示例
2017/05/07 Python
Python中定时任务框架APScheduler的快速入门指南
2017/07/06 Python
Python中反射和描述器总结
2018/09/23 Python
python抓取需要扫微信登陆页面
2019/04/29 Python
python scrapy重复执行实现代码详解
2019/12/28 Python
解决Keras 自定义层时遇到版本的问题
2020/06/16 Python
EM Cosmetics官网:由彩妆大神Michelle Phan创办的独立品牌
2020/04/27 全球购物
公司年会演讲稿范文
2014/01/11 职场文书
反腐倡廉警示教育活动心得体会
2014/09/04 职场文书
股份合作协议书
2014/09/10 职场文书
Python中os模块的简单使用及重命名操作
2021/04/17 Python
MySql学习笔记之事务隔离级别详解
2021/05/12 MySQL
vue+spring boot实现校验码功能
2021/05/27 Vue.js
python解析照片拍摄时间进行图片整理
2022/07/23 Python