数据库第三章部分习题答案.doc

上传人:大张伟 文档编号:5656129 上传时间:2020-07-20 格式:DOC 页数:7 大小:34KB
返回 下载 相关 举报
数据库第三章部分习题答案.doc_第1页
第1页 / 共7页
数据库第三章部分习题答案.doc_第2页
第2页 / 共7页
数据库第三章部分习题答案.doc_第3页
第3页 / 共7页
数据库第三章部分习题答案.doc_第4页
第4页 / 共7页
数据库第三章部分习题答案.doc_第5页
第5页 / 共7页
点击查看更多>>
资源描述

《数据库第三章部分习题答案.doc》由会员分享,可在线阅读,更多相关《数据库第三章部分习题答案.doc(7页珍藏版)》请在三一文库上搜索。

1、3.2 对于教学数据库的三个基本表 S(S#,SNAME,AGE,SEX) SC(S#,C#,GRADE) C(C#,CNAME,TEACHER)试用SQL的查询语句表达下列查询:3.2.1检索年龄小于17岁的女学生的学号和姓名select s#,sname from Swhere age=2;3.2.5检索至少有学号为S2和S4所学的课程和课程名select c#,cname from Cwhere c# in(select c# from sc where s#=S2)intersect(select c# from sc where s#=S4) );3.2.6检索WANG同学不学的课程

2、号select c# from cexcept(select distinct c# from sc where s# =(select s# from s where sname=WANG);3.2.7检索全部学生都选修的课程号和课程名select c#,cname from cwhere not exists(select s# from swhere c.c# not in (select c# from sc where sc.s#=s.s# );3.2.8检索选修课程包含LIU老师所授课程的全部课程的学生的学号和姓名select s#,sname from swhere not ex

3、ists(select c# from c where t#=(select t# from t where tname=LIU) except(select c# from sc where sc.s#=s.s#) );3.4 设有两个基本表R(A,B,C)和S(A,B,C),试用SQL查询语句表达下列关系代数表达式: RS RS RS RSA,B(R) B,C(S) 3=3 课 1,6(3=4(RS) 1,2,3(R S) RC(S)解: (SELECT * FROM R)UNION(SELECT * FROM S); (SELECT * FROM R)INTERSECT(SELECT *

4、 FROM S); (SELECT * FROM R)MINUS(SELECT * FROM S); SELECT *FROM R, S; SELECT R.A, R.B, S.CFROM R, SWHERE R.B=S.B; SELECT R.A, S.CFROM R, SWHERE R.C=S.A; SELECT R.*(R.*表示R中全部属性)FROM R, SWHERE R.C=S.C;RC(S)的元组表达式如下: t |(u)(v)(w)(R(u) S(v) R(w) w1=u1 w2=u2 w3=v3 t1=u1 t2=u2)据此,可写出SELECT语句:SELECT A, BFR

5、OM R RXWHERE NOT EXISTS( SELECT *FROM SWHERE NOT EXISTS( SELECT *FROM R RYWHERE RY.A=RX.A AND RY.B=RX.B AND RY.C=S.C); 3.6 试叙述SQL语言的关系代数特点和元组演算特点。答:SQL的关系代数特点如下: 有关系代数运算的并、交、差、自然联接等运算符; FROM子句体现了笛卡尔积操作,WHERE子句体现了选择操作,SELECT子句体现了投影操作。SQL的元组演算特点如下: FROM子句中的基本表名应视为“元组变量”,属性名应视为“元组分量”; 有存在量词EXISTS符号。 3.

6、12 试用SQL更新语句表达对3.2题教学数据库中关系S、SC、C的更新操作: 往关系C中插一个课程元组(C8,VC+,T6)。 检索所授每门课程平均成绩均大于80分的教师姓名,并把检索到的值送往另一个已存在的表FACULTY(TNAME)。 在SC中删除尚无成绩的选课元组。 把选修LIU老师课程的女同学选课元组全部删去。 把MATHS课不及格的成绩全改为60分。 把低于所有课程总平均成绩的女同学成绩提高5。 在表SC中修改C4课程的成绩,若成绩小于等于70分时提高5,若成绩大于70分时提高4(用两种方法实现,一种方法是用两个UPDATE语句实现,另一种方法是用带CASE操作的一个UPDATE

7、语句实现)。 在表SC中,当某个成绩低于全部课程的平均成绩时,提高5%。解: INSERT INTO CVALUES(C8,VC+,T6); INSERT INTO FACULTY(TNAME)SELECT DISTINCT TEACHERFROM (SELECT TEACHER, C.C#, AVG(GRADE)FROM S, SCWHERE SC.C#=C.C#GROUP BY TEACHER, C.C#)AS RESULT(TEACHER, C#, AVG_GRADE) AS XWHERE 80=ALL(SELECT AVG_GRADEFROM RESULT AS YWHERE Y.TE

8、ACHER=X.TEACHER); DELETE FROM SCWHERE GRADE IS NULL; DELETE FROM SCWHERE S# IN(SELECT S# FROM S WHERE SEX=F)AND C# IN(SELECT C# FROM C WHERE TEACHER=LIU); UPDATE SCSET GRADE=60WHERE GRADE60AND C# IN(SELECT C# FROM C WHERE CNAME=MATHS); UPDATE SCSET GRADE=GRADE*1.05WHERE S# IN(SELECT S# FROM S WHERE

9、SEX=F)AND GRADE70;UPDATE SCSET GRADE=GRADE*1.05WHERE C#=C4 AND GRADE70 THEN 1.04ELSE 1.05ENDWHERE C#=C4; UPDATE SCSET GRADE=GRADE*1.05WHERE GRADE50 AND SEX=M;SELECT EMP.E#, ENAMEFROM EMP, WORKSWHERE EMP.E#=WORKS.E# AND SALARY1000;SELECT A.E#, A.ENAMEFROM EMP A, WORKS B, WORKS CWHERE A.E#=B.E# AND B.

10、E#=C.E#AND B.C#=C4 AND C.C#=C8;SELECT A.E#, A.ENAMEFROM EMP A, WORKS B, COMP CWHERE A.E#=B.E# AND B.C#=C.C#AND CNAME=联华公司 AND SALARY1000AND SEX=M;SELECT E#, COUNT(C#) AS NUM, SUM(SALARY) AS SUM_SALARYFROM WORKS GROUP BY E#;SELECT X.E#FROM WORKS XWHERE NOT EXISTS(SELECT *FROM WORKS YWHERE E#=E6AND NOT EXISTS(SELECT *FROM WORKS ZWHERE Z.E#=X.E#AND Z.C#=Y.C#);SELECT A.E#, A.ENAMEFROM EMP A, WORKS B, COMP CWHERE A.E#=B.E# AND B.C#=C.C# AND CNAME=联华公司AND SALARY50);DELETE FROM WORKSWHERE E# IN (SELECT E# FROM EMP WHERE AGE60);DELETE FROM EMPWHERE AGE60;

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 科普知识


经营许可证编号:宁ICP备18001539号-1