注册 登录
编程论坛 SQL Server论坛

三道研究生SQL考试大题,请教!

chilemyself 发布于 2012-01-05 09:37, 1003 次点击
哪位大虾帮忙看看,给出答案,谢了!

1 关系数据库如下
学生(学号,姓名,性别,专业)
课程(课程号,名称,分数)
选课(学号,课程号,分数)

问 1 关系代数实现:查找学生李明的“数据库原理”课成绩
   2 分别用关系代数和SQL语句实现:查找不学课程号为“C03”课程的学生信息。


2 如下关系模式:
  学生:STUDENT (SNO,SNAME,SAGE,SDEPT) 分别为学号、学生姓名、学生年龄、所在系
  课程:COURSE (CNO、CNAME) 分别为课程编号、所在系
  选课:SC (SNO,CNO,GRADE)GRADE为分数
问 1 使用SQL嵌套语句查询不选课编号为“C001”的学员姓名和系
   2 使用SQL语句实现:列出“C001”号课成绩比“C002”号课程成绩高的所有学生的学号
   3 分别用关系代数和sql语句实现:列出经济系有不及格课程的学生名单

3 教学数据库中三个表
  学生表student(SNO,SNAME,AGE,SEX)学号,姓名,年龄,性别
  课程表course (CNO,CNAME)课程号,课程名
  学生选课表 SC (SNO,CNO,GRADE)分数
问 1 查询出每个年龄段的学生人数,并按人数多少升序排列
   2 查询选了“数据库原理”课,但不及格的学生姓名和分数
   3 将张三选修的英语课程的成绩改为该门课程的平均成绩
7 回复
#2
png2012-01-10 00:10
回复 楼主 chilemyself
没学过关系代数,我去考最多只能得一半分了.

1.2) select * from student where sno not in (select sno from sc where cno = 'C03')

2.1) select sname, sdept
     from   student
     where  sno not in
            (
            select sno
            from sc
            where cno = 'c001'
             )

2.2)    select    *
        from      SC a join SC b
                  on a.sno = b.sno
        where      = 'c001' and
                   = 'c002' and
                  a.grade > b.grade

2.3)
        select     *
        from       student
        where      sdept = 'd001' and                              -- d001 = 经济系
                   sno in (select sno from sc where grade < 50)    -- 50   = 及格

        
#3
panxingren2012-01-15 16:19
同意2楼。(2楼代码写得很工整、漂亮)
#4
kaijin11152012-01-27 17:02
1 1)select 分数 from course where "课程号"=( select 课程号 from SC where "学号"=( select 学号 from student where "姓名"='李明' ) )
2)select * from student where "学号" in ( select 学号 from SC where "课程号"<>'co3' )
#5
cnfarer2012-02-01 11:23
这个在本科阶段就该掌握吧
#6
w3275551622012-02-01 13:45
还在初级学习阶段
#7
hanxiao5552012-02-29 11:38
请问关系代数的具体实现是啥样的?
#8
E小韭2012-03-20 00:49
1