SQL习题集(2)

转载 2006年05月31日 16:15:00

问题描述:
已知关系模式:
S (SNO,SNAME)                       学生关系。SNO 为学号,SNAME 为姓名
C (CNO,CNAME,CTEACHER)  课程关系。CNO 为课程号,CNAME 为课程名,CTEACHER 为任课教师
SC(SNO,CNO,SCGRADE)        选课关系。SCGRADE 为成绩

要求实现如下5个处理:
  1. 找出没有选修过“李明”老师讲授课程的所有学生姓名
  2. 列出有二门以上(含两门)不及格课程的学生姓名及其平均成绩
  3. 列出既学过“1”号课程,又学过“2”号课程的所有学生姓名
  4. 列出“1”号课成绩比“2”号同学该门课成绩高的所有学生的学号
  5. 列出“1”号课成绩比“2”号课成绩高的所有学生的学号及其“1”号课和“2”号课的成绩

1。找出没有选修过“李明”老师讲授课程的所有学生姓名

代码实现:

select sname from s where not exists (select * from c,sc where c.cno=sc.cno AND c.cteacher=N'李明' AND s.sno=sc.sno)

2。列出有二门以上(含两门)不及格课程的学生姓名及其平均成绩

代码实现:

SELECT S.SNO,S.SNAME,AVG_SCGRADE=AVG(SC.SCGRADE)
FROM S,SC,(
    SELECT SNO
    FROM SC
    WHERE SCGRADE<60
    GROUP BY SNO
    HAVING COUNT(DISTINCT CNO)>=2
)A WHERE S.SNO=A.SNO AND SC.SNO=A.SNO
GROUP BY S.SNO,S.SNAME

3。列出既学过“1”号课程,又学过“2”号课程的所有学生姓名

代码实现:

SELECT S.SNO,S.SNAME
FROM S,(
SELECT SC.SNO
FROM SC,C
WHERE SC.CNO=C.CNO
AND C.cno IN('1','2')
GROUP BY SNO
HAVING COUNT(DISTINCT c.CNO)=2
)SC WHERE S.SNO=SC.SNO

4。列出“1”号课成绩比“2”号同学该门课成绩高的所有学生的学号

实现代码:

SELECT S.SNO,S.SNAME
FROM S,SC SC1,SC SC2
WHERE SC1.CNO='1'
AND SC2.SNO='2'
AND SC1.CNO=S.CNO
AND SC1.SCGRADE>SC2.SCGRADE

5。列出“1”号课成绩比“2”号课成绩高的所有学生的学号及其“1”号课和“2”号课的成绩

实现代码:

SELECT SC1.SNO,[1号课成绩]=SC1.SCGRADE,[2号课成绩]=SC2.SCGRADE
FROM SC SC1,SC SC2
WHERE SC1.CNO='1'
AND SC2.CNO='2'
AND SC1.SNO=SC2.SNO
AND SC1.SCGRADE>SC2.SCGRADE

SQL Server练习题2

题目2 问题描述:已知关系模式:S (SNO,SNAME)                       学生关系。SNO 为学号,SNAME 为姓名C (CNO,CNAME,CTEACHER)  课程...
  • zjcxc
  • zjcxc
  • 2005年05月31日 17:31
  • 12829

文件 No.2 SQL习题集

1. 查询选修了“02”号课程学生的学号 select sno from sc where cno = '02'; 2. 查询没选“02”号课程,学生的学号 select s.sno from s w...
  • linglian0522
  • linglian0522
  • 2017年04月24日 21:33
  • 174

博弈论基础习题集

http://acm.hust.edu.cn/vjudge/contest/view.action?cid=108499#overview 题目分类: sg函数:A,E,H,I 尼姆博弈:B,C, 巴...
  • qq_30241305
  • qq_30241305
  • 2016年03月10日 10:17
  • 571

编程语言习题集(2)

1.C/C++ 1.1以下叙述中正确的是() A.int* p1; int ** p2; int *p3;都是合法的定义指针变量的语句 B.指针变量只能通过求地址运算符(&) 来获得地址值 C...
  • qq_35082030
  • qq_35082030
  • 2017年12月18日 17:10
  • 252

实验吧 ctf 题目简单的sql注入2writeup

解题链接: http://ctf5.shiyanbar.com/web/index_2.php 1.输入id值,通过回显发现题目应该是进行了空格过滤 2.使用sqlmap进行注入    2.1 ...
  • ZweLL032
  • ZweLL032
  • 2017年03月11日 21:47
  • 3588

柯朗微积分与数学分析习题选解(1.1 节 e)

一直在读《陶哲轩实分析》,陶的书非常的严谨,环环相扣,但是也有个缺点就是计算性的例子和应用方面的例子太少了。所以就又找了本柯朗的《微积分与数学分析》搭配着看。柯朗的书的习题与陶的风格完全不同,里面有大...
  • liyuanbhu
  • liyuanbhu
  • 2016年12月25日 19:04
  • 1265

袖珍电子书与吉米多维奇《数学分析习题集》

    二十世纪初期,在数理化,天地生研究领域涌现出一大批世界级的领袖人物,比如,爱因斯坦、罗素与公理化概率论的奠基人A.N. Kolmogorov等。从上世纪三十年代开始,B.P...
  • yuanmeng001
  • yuanmeng001
  • 2013年03月21日 04:39
  • 2367

C++程序设计课后习题及解答(第四章)

设计并测试一个名为Rectangle的矩形类,其属性为矩形的左下角与右上角的两个点的坐标,根据坐标能算出矩形的面积。 设计一个用于人事管理的“人员”类。由于考虑到通用性,这里只抽象出所有类型人员都具有...
  • rl529014
  • rl529014
  • 2016年01月03日 18:01
  • 779

计算机系统结构习题集2

1.某处理机的指令字长为16位,有双地址指令、单地址指令和零地址指令三类,并假设每个地址字段的长度均为6位。 (1) 如果双地址指令有15条,单地址指令和零地址指令的条数基本相同,问单地址指令和零地...
  • macandroid
  • macandroid
  • 2013年06月19日 22:57
  • 4704

Linux下练习C++的第一例

//系统为ubuntu14.04,所使用gcc version 4.8.2 在ubuntu上开发C++的第一个实例: 程序附下: #include #include using namespace s...
  • taoshengyiju
  • taoshengyiju
  • 2015年05月04日 21:24
  • 178
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:SQL习题集(2)
举报原因:
原因补充:

(最多只允许输入30个字)