SQL Server练习题2

原创 2005年05月31日 17:31:00

题目2

问题描述:
已知关系模式:
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 SC,C
    WHERE SC.CNO=C.CNO
         AND C.CTEACHER='李明'
          AND SC.SNO=S.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.CNAME IN('1','2')
    GROUP BY SNO
    HAVING COUNT(DISTINCT 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)  课程...
  • chenzhiya
  • chenzhiya
  • 2008年01月03日 14:50
  • 193

sql 存储过程 入门级 练习

sql 存储过程 入门级
  • samuel_zhang_
  • samuel_zhang_
  • 2015年08月20日 10:16
  • 2271

Microsoft SQL Server,错误2

1.我在敲学生时连接数据库出现过这样的问题:Microsoft SQL Server,错误2  2.原因: sqlsever服务没有开启。 3.解决: 打开配置工具中的配置管理器,开启...
  • whm18322394724
  • whm18322394724
  • 2016年09月08日 20:00
  • 631

经典的SQL语句,适合新手练习使用(二)-提升

1、说明:复制表(只复制结构,源表名:a 新表名:b) (Access可用) 法一:select * into b froma where 1(仅用于SQlServer) 法二:select to...
  • u012496929
  • u012496929
  • 2015年07月26日 22:23
  • 1577

sql连接错误(Microsoft SQL Server,错误:2)

昨天用SQL语句建表的时候写了一段代码,对于代码的逻辑和内容我不太肯定对不对,反正是毫不犹豫的让它执行了,过程中出现好几个错误,当时没有太在意,想着大不了出错了再重写一个,结果……太可恨了,从昨天到现...
  • chenyanmoting
  • chenyanmoting
  • 2014年06月20日 17:51
  • 3253

无法打开到sql server的连接 错误2

打开 SQL  Server Configuration Manager, 但这个东西有两个,要打开图中画有红线的哪个。 启动服务 再连接数据库就成功了 这个是服务没启动,百度上...
  • PowerFY
  • PowerFY
  • 2016年11月22日 10:31
  • 1794

sqlsever存储过程练习题

 一、存储过程练习题 1、根据玩家姓名,显示该玩家玩过哪些公司的游戏 2、根据战绩的关键字(比如’第一名’)查询玩家所属的省份。 二、触发器练习题 1、PlayGame表的插入触发器:功...
  • Pythonor_clean
  • Pythonor_clean
  • 2015年04月13日 11:49
  • 696

SQl server error:40 错误2

昨天遇到的这个问题:关机的时候SQLserver 还可以正常使用,第二天上班的时候发现SQLserver无法使用了:提示错误是 SQl server error:40 错误2:主要原因是SQlser...
  • yangpiaoluotianya
  • yangpiaoluotianya
  • 2015年05月24日 09:34
  • 5502

SQL Server 存储过程和触发器sql语句练习

SQL Server 存储过程和触发器sql语句练习
  • hoho_12
  • hoho_12
  • 2015年12月18日 22:25
  • 1623

SQL Server 练习题

题目1 问题描述: 为管理岗位业务培训信息,建立3个表: S (S#,SN,SD,SA)   S#,SN,SD,SA 分别代表学号、学员姓名、所属单位、学员年龄 C (C#,CN )   ...
  • kevinmoto
  • kevinmoto
  • 2013年06月20日 10:13
  • 666
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:SQL Server练习题2
举报原因:
原因补充:

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