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

上传人:每**** 文档编号:46391300 上传时间:2021-12-13 格式:DOC 页数:10 大小:40KB
收藏 版权申诉 举报 下载
数据库第三章部分习题答案_第1页
第1页 / 共10页
数据库第三章部分习题答案_第2页
第2页 / 共10页
数据库第三章部分习题答案_第3页
第3页 / 共10页
资源描述:

《数据库第三章部分习题答案》由会员分享,可在线阅读,更多相关《数据库第三章部分习题答案(10页珍藏版)》请在装配图网上搜索。

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<17 and sex=F;3.2.2检索男生所学课程的课程号和课程名select c#,cname from Cwhere c# in (select distinct c# from SC where s# in (select s# from S where sex=M)3.2.3检索男生所学课程

2、的任课老师的工号和姓名select t#,tname from Twhere t# in(select distinct t# from Cwhere c# in(select distinct c# from SCwhere s# in(select s# from Swhere sex=1);3.2.4检索至少选修两门课程的学生的学号select s# from SCgroup by s#请预览后下载!having count(c#)>=2;3.2.5检索至少有学号为S2和S4所学的课程和课程名select c#,cname from Cwhere c# in(select c# f

3、rom sc where s#='S2')intersect(select c# from sc where s#='S4') );3.2.6检索WANG同学不学的课程号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 i

4、n (select c# from sc where sc.s#=s.s# );3.2.8检索选修课程包含'LIU'老师所授课程的全部课程的学生的学号和姓名select s#,sname from swhere not exists(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查询语句表达下列关系代数表达式: R

5、S RS RS R×SA,B(R) B,C(S) 3=3 课 1,6(3=4(R×S) 1,2,3(R S) R÷C(S)解: (SELECT * FROM R)UNION(SELECT * FROM S); (SELECT * FROM R)INTERSECT(SELECT * 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

6、.C=S.A; SELECT R.*(R.*表示R中全部属性)FROM R, SWHERE R.C=S.C;R÷C(S)的元组表达式如下: t |(u)(v)(w)(R(u) S(v) R(w) w1=u1 w2=u2 w3=v3 t1=u1 t2=u2)据此,可写出SELECT语句:SELECT A, BFROM 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语言的

7、关系代数特点和元组演算特点。答:SQL的关系代数特点如下: 有关系代数运算的并、交、差、自然联接等运算符; FROM子句体现了笛卡尔积操作,WHERE子句体现了选择操作,SELECT子句体现了投影操作。SQL的元组演算特点如下: FROM子句中的基本表名应视为“元组变量”,属性名应视为“元组分量”; 有存在量词EXISTS符号。 3.12 试用SQL更新语句表达对3.2题教学数据库中关系S、SC、C的更新操作: 往关系C中插一个课程元组('C8','VC+','T6')。 检索所授每门课程平均成绩均大于80分的教师姓名,并把检索到的值送往另一个已

8、存在的表FACULTY(TNAME)。 在SC中删除尚无成绩的选课元组。 把选修LIU老师课程的女同学选课元组全部删去。 把MATHS课不及格的成绩全改为60分。 把低于所有课程总平均成绩的女同学成绩提高5。 在表SC中修改C4课程的成绩,若成绩小于等于70分时提高5,若成绩大于70分时提高4(用两种方法实现,一种方法是用两个UPDATE语句实现,另一种方法是用带CASE操作的一个UPDATE语句实现)。 在表SC中,当某个成绩低于全部课程的平均成绩时,提高5%。解: INSERT INTO CVALUES('C8','VC+','T6'); I

9、NSERT 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.TEACHER=X.TEACHER); DELETE FROM SCWHERE GRADE IS NULL; DELETE FROM SC请

10、预览后下载!WHERE S# IN(SELECT S# FROM S WHERE SEX='F')AND C# IN(SELECT C# FROM C WHERE TEACHER='LIU'); UPDATE SCSET GRADE=60WHERE GRADE<60AND C# IN(SELECT C# FROM C WHERE CNAME='MATHS'); UPDATE SCSET GRADE=GRADE*1.05WHERE S# IN(SELECT S# FROM S WHERE SEX='F')AND GRADE&l

11、t;(SELECT AVG(GRADE) FROM SC); 用两个UPDATE语句实现:UPDATE SCSET GRADE=GRADE*1.04WHERE C#='C4' AND GRADE>70;UPDATE SCSET GRADE=GRADE*1.05WHERE C#='C4' AND GRADE<=70;(这两个UPDATE语句的顺序不能颠倒。)用一个UPDATE语句实现:UPDATE SCSET GRADE=GRADE*CASEWHEN GRADE>70 THEN 1.04ELSE 1.05ENDWHERE C#='C4&#

12、39;; UPDATE SCSET GRADE=GRADE*1.05WHERE GRADE<(SELECT AVG(GRADE) FROM SC); 3.13 设数据库中有三个关系:职工表EMP(E#,ENAME,AGE,SEX,ECITY),其属性分别表示职工工号、姓名、年龄、性别和籍贯。工作表WORKS(E#,C#,SALARY),其属性分别表示职工工号、工作的公司编号和工资。公司表COMP(C#,CNAME,CITY),其属性分别表示公司编号、公司名称和公司所在城市。试用SQL语句写出下列操作: 用CREATE TABLE语句创建上述三个表,需指出主键和外键。 检索超过50岁的男职

13、工的工号和姓名。 假设每个职工只能在一个公司工作,检索工资超过1000元的男性职工工号和姓名。 假设每个职工可在多个公司工作,检索在编号为C4和C8公司兼职的职工工号和姓名。请预览后下载! 检索在“联华公司”工作、工资超过1000元的男性职工的工号和姓名。 假设每个职工可在多个公司工作,检索每个职工的兼职公司数目和工资总数.显示(E#,NUM,SUM_SALARY),分别表示工号、公司数目和工资总数。 工号为E6的职工在多个公司工作,试检索至少在E6职工兼职的所有公司工作的职工工号。 检索联华公司中低于本公司平均工资的职工工号和姓名。 在每一公司中为50岁以上职工加薪100元(若职工为多个公司

14、工作,可重复加)。 在EMP表和WORKS表中删除年龄大于60岁的职工有关元组。解:CREATE TABLE EMP( E# CHAR(4) NOT NULL,ENAME CHAR(8) NOT NULL,AGESMALLINT,SEXCHAR(1),ECITYCHAR(20),PRIMARY KEY(E#);CREATE TABLE COMP( C# CHAR(4) NOT NULL,CNAME CHAR(20) NOT NULL,CITYCHAR(20),PRIMARY KEY(C#);CREATE TABLE WORKS( E# CHAR(4) NOT NULL, C#CHAR(4) N

15、OT NULL, SALARYSMALLINT,PRIMARY KEY(E#, C#),FOREIGN KEY(E#) REFERENCES EMP(E#),FOREIGN KEY(C#) REFERENCES COMP(C#);SELECT E#, ENAMEFROM EMPWHERE AGE>50 AND SEX='M';SELECT EMP.E#, ENAMEFROM EMP, WORKSWHERE EMP.E#=WORKS.E# AND SALARY>1000;SELECT A.E#, A.ENAMEFROM EMP A, WORKS B, WORKS CW

16、HERE A.E#=B.E# AND B.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 SALARY>1000AND SEX='M';请预览后下载!SELECT E#, COUNT(C#) AS NUM, SUM(SALARY) AS SUM_SALARYFROM WORKS GROUP BY E#;SELEC

17、T X.E#FROM WORKS XWHERE NOT EXISTS(SELECT *FROM WORKS YWHERE E#='E6'AND 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 SALARY<(SELECT AVG(SALARY)FROM WORKS, COMPWHERE WORKS.C#=COMP.C#AND CNAME='联华公司');UPDATE WORKSSET SALARY=SALARY+100WHERE E# IN (SELECT E# FROM EMP WHERE AGE>50);DELETE FROM WORKSWHERE E# IN (SELECT E# FROM EMP WHERE AGE>60);DELETE FROM EMPWHERE AGE>60; (注:可编辑下载,若有不当之处,请指正,谢谢!) 请预览后下载!

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!