上海电机学院 201__–201__学年第__学期
(课程代码)《数据库原理及应用》课程期中考试试卷   
开课学院:  电子信息学院         考试时间 90 分钟        A
计算器□        草稿纸□        答题卡□        考试形式: 开卷/闭卷
考生姓名:                学号:                班级:           
题序
得分
评卷人
sql统计每个系的学生人数. 设有三个关系:
S(S#,SNAME,AGE,SEX)
SC(S#,C#,GRADE)
C(C#,CNAME,TEACHER)
试用关系代数表达式表示下列查询语句.
1. 试用关系代数表达式表示上题中各个查询语句。
(1)检索LIU老师所授课程的课程号、课程名。
πC#,CNAMETEACHER='LIU'(C))
(2)检索年龄大于23岁的男学生的学号与姓名。
πS#,SNAME(σAGE'23'SEX=''(S))
(3)检索学号为S3学生所学课程的课程名与任课教师名。
πCNAME,TEACHER(σS#='S3'(SCC))
(4)检索至少选修LIU老师所授课程中一门课程的女学生的姓名。
πSNAME(σSEX=''TEACHER='LIU'(SSCC))
(5)检索WANG同学不学的课程号。
πC#(C)-πC#(σSNAME='WANG'(SSC))
  或者,
πC#(SC)-πC#(σSNAME='WANG'(SSC)) (全部课程号减去WANG同学所学的课程号)
(C中选择满足条件的元组:SC中的所有元组,如果学号与C中所选元组相同的话,其在S中对应的姓名肯定不是'wang')
Notice:"p1=>p2"的含义是:如果p1为真,则p2为真。
(6)检索至少选修两门课程的学生学号。
πS#(σ1=42≠5(SC×SC))
(7)检索全部学生都选修的课程的课程号与课程名。
πC#,CNAME(C(πS#,C#(SC)÷πS#(S))) (涉及到全部值时,应用除法,除数"全部")
(8)检索选修课程包含LIU老师所授课程的学生学号。
πS#(σTEACHER='LIU'(SCC))
如果LIU老师有多门课程,则选修课程包含LIU老师所授全部课程的学生学号为:
πS#,C#(SC)÷πC#(σTEACHER='LIU'(C))
. 设有关系RS(如下:)
计算:

.  笛卡尔积、等值联接、自然联接三者之间有什么区别?
  笛卡尔积对两个关系RS进行乘操作,产生的关系中元组个数为两个关系中元组个数之积。
  等值联接则是在笛卡尔积的结果上再进行选择操作,从关系RS的笛卡儿积中选择对应属性值相等的元组;
  自然连接则是在等值联接(以所有公共属性值相等为条件)的基础上再行投影操作,并去掉重复的公共属性列。 当两个关系没有公共属性时,自然连接就转化我笛卡尔积。
. 设有两个基本表RABC)和SDEF),试用SQL查询语句表达下列关系代数表达式:
  (1πA(R)  (2)σB='17'(R)   (3)R×S  (4))πA,FC=D(R×S))
(1)SELECT A FROM R
(2)SELECT * FROM R WHERE B='17'
(3)SELECT A,B,C,D,E,F FROM R,S
(4)SELECT A,F FROM R,S WHERE R.C=S.D
. 设有两个基本表RABC)和SABC)试用SQL查询语句表达下列关系代数表达式:
  (1RS  (2R∩S  (3RS  (4πA,B(R)πB,C(S)

   (1)SELECT A,B,C
     FROM R
     UNION
     SELECT A,B,C
     FROM S

   (2)SELECT A,B,C
     FROM R
     INTERSECT
     SELECT A,B,C
     FROM S

   (3)SELECT A,B,C
     FROM R
     WHERE NOT EXISTS
      (SELECT A,B,C
      FROM S
      WHERE R.A=S.A AND R.B=S.B AND R.C=S.C)

   (4)SELECT R.A,R.B,S.C
     FROM R,S
     WHERE R.B=S.B

. 设有一个学生选课数据库,包括StudentSCCourse三个关系模式:
StudentSnoSnameSsexSageSdept
SC(SnoCnoGrade)
CourseCnoCnameCcreditSemester
试用SQL完成如下查询:
(1) 查询SC表中的全部数据;
(2) 查询计算机系学生的姓名和年龄;
(3) 查询成绩在70-80分的学生的学号、课程号和成绩;
(4) 查询计算机系年龄在18-20岁的男学生的姓名和年龄;
(5) 查询C001课程号的最高分;
(6) 查询计算机系学生的最大年龄和最小年龄;
(7) 统计每个系的学生人数;
(8) 统计每门课程号的选课人数和考试最高分;
(9) 统计每个学生的选课门数和考试总成绩,并按选课门数升序显示结果;
(10) 查询总成绩超过200分的学生,要求列出其学号和总成绩;
(11) 查询选修C002课程的学生姓名和所在系;
(12) 查询成绩80分以上的学生姓名、课程号和成绩,并按成绩降序排列结果;
(13) 查询哪些课程号没有学生选修,要求列出课程号和课程名;
(14) 查询计算机系哪些学生没有选课,列出学生姓名;
(15) 查询选修C001课程号的学生姓名和所在系;
(16) 查询通信工程系成绩在80分以上的学生学号和姓名;
(17) 查询计算机系考试成绩最高的学生姓名。
(18) 查询年龄最大的男学生的姓名和年龄;
(19) 查询C001课程号的考试成绩高于该课程号平均成绩的学生学号和成绩;
(20) 创建内容为学生学号、姓名、所在系、课程号、课程名、课程学分的视图;
(21) 创建内容为学生的学号、姓名、选修课程名和考试成绩的视图;
(22) 创建内容为统计每个学生的选课门数的视图,要求列出学生学号和选课门数;
(23) 创建内容为每个学生的选课总学分的视图,要求列出学生学号和总学分(说明: 考试成绩超过60才能获得此课程的学分)
(24) 删除选课成绩小于50分的学生的选课记录;
(25) 将所有选修C001课程的学生的成绩加10分;
(26) 将计算机所有选修“数据库原理及应用”课程的学生成绩加10分。
答案:
(1) Select * from sc
(2) Select sname,sage from student where sdept=’计算机系
(3) Select sno,course,grade from sc where grade between 70 and 80
(4) Select sname,sage from student where sdept=计算机系’ and ssex=’’ and sage between 18 and 20
(5) Select max(grade) 最高分 from sc where cno=’C001’
(6) Select max(sage) 最大年龄,min(sage) 最小年龄 from student where sdetp=’计算机系
(7) Select sdept,count(*) 学生人数 from student group by sdept
(8) Select cno,count(*) 选课人数, max(grade) 最高分 from sc group by cno
(9) Select sno,count(*) 选课门数, sum(grade) 总成绩 from sc group by sno order by count(*)
(10) Select sno,sum(grade) 总成绩 from sc group by sno having sum(grade)>200
(11) Select sname,sdept from student,sc where student.sno=sc.sno and cno=’C002’
(12) Select sname,cno,grade from student,sc where student.sno=sc.sno and grade>80 order by grade desc
(13) Select
(14) Select
(15) Select
(16) Select sno,sname from student,sc where student.sno=sc.sno and sdept=’通信工程系’ and grade>80
(17) Select
(18) Select
(19) Select sno,grade from sc where grade>(select avg(grade) from sc where cno=’c001’) and cno=’c001’
(20) Create view view1 as select sno,sname,sdept,cno,cname,ccredit from student,sc,course where student.sno=sc.sno and sco=courseo
(21) Create view view2 as select sno,sname,cname,grade from student,sc,course where student.sno=sc.sno and sco=courseo
(22)

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。