一道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面试题
Apr 14 面试题
怎样比较两个类型为String的字符串
Aug 17 面试题
C++如何引用一个已经定义过的全局变量
Aug 25 面试题
存储过程和函数的区别
May 28 面试题
什么是唯一索引
Jul 05 面试题
OLEDBConnection和SQLConnection有什么区别
May 31 面试题
某公司的.net工程师面试题笔试题
Nov 22 面试题
网络工程师面试(三木通信技术有限公司)
Jun 05 面试题
什么叫做SQL注入,如何防止
Oct 04 面试题
飞利信loadrunner和软件测试笔试题
Sep 22 面试题
Servlet如何得到服务器的信息
Dec 22 面试题
一套Delphi的笔试题一
Feb 14 面试题
金蝶的一道SQL笔试题
Dec 18 #面试题
查询优化的一般准则有哪些
Mar 08 #面试题
Sql面试题
Mar 20 #面试题
分布式数据库需要考虑哪些问题
Dec 08 #面试题
什么是事务?为什么需要事务?
Jan 09 #面试题
数据库基础的一些面试题
Feb 25 #面试题
试述DBMS的主要功能
Nov 13 #面试题
You might like
上海地方志办公室-上海电子仪表工业志
2021/03/04 无线电
php 无限级分类学习参考之对ecshop无限级分类的解析 带详细注释
2010/03/23 PHP
php笔记之:php函数range() round()和list()的使用说明
2013/04/26 PHP
PHP实现的数独求解问题示例
2017/04/18 PHP
Laravel 5.5 异常处理 & 错误日志的解决
2019/10/17 PHP
QUnit jQuery的TDD框架
2010/11/04 Javascript
一个简单的动态加载js和css的jquery代码
2014/09/01 Javascript
Javascript实现检测客户端类型代码封包
2015/12/03 Javascript
jQuery实现form表单元素序列化为json对象的方法
2015/12/09 Javascript
jQuery中的siblings用法实例分析
2015/12/24 Javascript
关于Iframe父页面与子页面之间的相互调用
2016/11/22 Javascript
微信小程序网络请求的封装与填坑之路
2017/04/01 Javascript
AngularJS基于http请求实现下载php生成的excel文件功能示例
2018/01/23 Javascript
vue.js,ajax渲染页面的实例
2018/02/11 Javascript
angular第三方包开发整理(小结)
2018/04/19 Javascript
vue实现form表单与table表格的数据关联功能示例
2019/01/29 Javascript
vue实现动态显示与隐藏底部导航的方法分析
2019/02/11 Javascript
ES6 let和const定义变量与常量的应用实例分析
2019/06/27 Javascript
JS把字符串格式的时间转换成几秒前、几分钟前、几小时前、几天前等格式
2019/07/10 Javascript
Python TestCase中的断言方法介绍
2019/05/02 Python
PyQt5+Caffe+Opencv搭建人脸识别登录界面
2019/08/28 Python
Python对象的属性访问过程详解
2020/03/05 Python
六种酷炫Python运行进度条效果的实现代码
2020/07/17 Python
详解python实现可视化的MD5、sha256哈希加密小工具
2020/09/14 Python
详解HTML5中的元素与元素
2015/08/17 HTML / CSS
trivago美国:全球最大的酒店价格比较网站
2018/01/18 全球购物
房地产公司见习自我鉴定
2014/04/28 职场文书
初中升旗仪式演讲稿
2014/05/08 职场文书
农民工讨薪标语
2014/06/26 职场文书
小学学校门卫岗位职责
2014/08/03 职场文书
在职证明书范本(2014新版)
2014/09/25 职场文书
2015年干部教育培训工作总结
2015/05/15 职场文书
致三级跳运动员加油稿
2015/07/21 职场文书
使用@Value值注入及配置文件组件扫描
2021/07/09 Java/Android
人物搭配车车超萌联名预备中 【咒术迴战】 ⨯ 【天竺鼠车车】 展开合作
2022/04/11 日漫
html中两种获取标签内的值的方法
2022/06/16 jQuery