数据库基本知识第五章课后答案解析_第1页
数据库基本知识第五章课后答案解析_第2页
数据库基本知识第五章课后答案解析_第3页
数据库基本知识第五章课后答案解析_第4页
数据库基本知识第五章课后答案解析_第5页
已阅读5页,还剩6页未读, 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

**5.4对于教学数据库的三个基本表学生S(S#,SNAME,AGE,SEX)学习SC(S#,,GRADE)课程C(C#,CNAME,TEACHER)试用SQL的查询语句表达下列查询:(1)检索LIU老师所授课程的课程号和课程名。SELECTC#,CNAMEFROMCWHERETEACHER=‘LIU’(2)检索年龄大于23岁的男学生的学号和姓名。SELECTS#,SNAMEFROMSWHERE(AGE>23)AND(SEX=‘M’)精品文档放心下载(3)检索至少选修LIU老师所授课程中一门课程的女学生姓名。感谢阅读SELECTSNAMEFROMSWHERESEX=‘F’ANDS#IN(SELECTS#FROMSCWHEREC#IN(SELECTC#FROMCWHERETEACHER=‘LIU’)**NOTICE:有多种写法,比如联接查询写法:SELECTSNAMEFROMS,SC,CWHERESEX=‘F’ANDSC.S#=S.S#谢谢阅读ANDSC.C#=C.C#ANDTEACHER='LIU'但上一种写法更好一些。(4)检索WANG同学不学的课程的课程号。SELECTC#FROMCWHEREC#NOTIN(SELECTC#FROMSCWHERES#IN(SELECTS#FROMSWHERESNAME='WANG'))(5)检索至少选修两门课程的学生学号。SELECTDISTINCTX.SNOFROM SCX,SCYWHEREX.SNO=Y.SNOANDX.CNO<>Y.CNO感谢阅读Notice:对表SC进行自连接,X,Y是SC的两个别名。谢谢阅读(6)检索全部学生都选修的课程的课程号与课程名。SELECTC#,CNAMEFROMCWHERENOTEXISTS(SELECT*FROMSWHERES#NOTIN(SELECT*FROMSCWHERESC.C#=C.C#))要从语义上分解:(1)选择课程的课程号与课程名,不存在不选这门课的同学。感谢阅读其中,“不选这门课的同学”可以表示为:**或者SELECT*SELECT*FROMSFROMSWHERENOTEXISTSWHERES#NOTIN(SELECT*(SELECT*FROMSCFROMSCWHERES.S#=C.S#WHERESC.C#=C.C#)ANDSC.C#=C.C#)(7)检索选修课程包含LIU老师所授课的学生学号。谢谢阅读SELECTDISTINCTS#FROMSCWHEREC#IN(SELECTC#FROMCWHERETEACHER='LIU'))(8)统计有学生选修的课程门数。SELECTCOUNT(DISTINCTC#)FROMSC感谢阅读(9)求选修C4课程的学生的平均年龄。SELECTAVG(AGE)FROMSWHERES#IN(SELECTS#FROMSCWHEREC#='C4')或者,SELECTAVG(AGE)**FROMS,SCWHERES.S#=SC.S#ANDC#='004'谢谢阅读(10)求LIU老师所授课程的每门课程的学生平均成绩。精品文档放心下载SELECTCNAME,AVG(GRADE)FROMSC,CWHERESC.C#=C.C#ANDTEACHER='LIU'谢谢阅读GROUPBYC#(11)统计每门课程的学生选修人数(超过10人的课程才统计)。要求输出课程号和选修人数,查询结果按人数降序排列,若人数相同,按课程号升序排列。谢谢阅读SELECTDISTINCTC#,COUNT(S#)谢谢阅读FROMSCGROUPBYC#HAVINGCOUNT(S#)>10ORDERBY2DESC,C#ASC(12)检索学号比WANG同学大,而年龄比他小的学生姓名。精品文档放心下载SELECTX.SNAMEFROMSASX,SASYWHEREY.SNAME='WANG'ANDX.S#>Y.S#ANDX.AGE<Y.AGE精品文档放心下载(13)检索姓名以WANG打头的所有学生的姓名和年龄。精品文档放心下载**SELECTSNAME,AGEFROMSWHERESNAMELIKE'WANG%'(14)在SC中检索成绩为空值的学生学号和课程号。精品文档放心下载SELECTS#,C#FROMSCWHEREGRADEISNULL(15)求年龄大于女同学平均年龄的男学生姓名和年龄。谢谢阅读SELECTSNAME,AGEFROMSASXWHERE X.SEX='男'ANDX.AGE>(SELECTAVG(AGE)FROMSASY谢谢阅读WHEREY.SEX='女')(16)求年龄大于所有女同学年龄的男学生姓名和年龄。谢谢阅读SELECTSNAME,AGEFROMSASXWHEREX.SEX='男'ANDX.AGE>ALL(SELECTAGEFROMSASYWHERE谢谢阅读Y.SEX='女')5.6 试用SQL更新语句表达对教学数据库中三个基本表S、SC、C的各个更感谢阅读新操作:(1)往基本表S中插入一个学生元组(‘S9’,‘WU’,18)。谢谢阅读INSERTINTOS(S#,SNAME,AGE)VALUES('59','WU',18)谢谢阅读**(2)在基本表S中检索每一门课程成绩都大于等于80分的学生学号、姓名和性别,并把检索到的值送往另一个已存在的基本表STUDENT(S#,SANME,SEX)。感谢阅读INSERTINTOSTUDENT(S#,SNAME,SEX)感谢阅读SELECTS#,SNAME,SEXFROMSWHERE NOTEXISTS(SELECT*FROMSCWHEREGRADE<80ANDS.S#=SC.S#)(3)在基本表SC中删除尚无成绩的选课元组。DELETEFROMSCWHEREGRADEISNULL(4)把WANG同学的学习选课和成绩全部删去。DELETEFROMSCWHERES#IN(SELECTS#FROMSWHERESNAME='WANG')(5)把选修MATHS课不及格的成绩全改为空值。谢谢阅读UPDATESCSETGRADE=NULLWHEREGRADE<60ANDC#IN(SELECTC#**FROMCWHERECNAME='MATHS')(6)把低于总平均成绩的女同学成绩提高5%。UPDATESCSETGRADE=GRADE*1.05WHEREGRADE<(SELECTAVG(GRADE)FROMSC)ANDS#IN(SELECTS#感谢阅读FROMSWHERESEX='F')(7)在基本表SC中修改C4课程的成绩,若成绩小于等于75分时提高5%,若成绩大于75分时提高4%(用两个UPDATE语句实现)。感谢阅读UPDATESCSETGRADE=GRADE*1.05WHEREC#='C4'ANDGRADE<=75谢谢阅读UPDATESCSETGRADE=GRADE*1.04WHEREC#='C4'ANDGRADE>75精品文档放心下载5.7 在第1章例1.4中提到“仓库管理”关系模型有五个关系模式:感谢阅读零件 PART(P#,PNAME,COLOR,WEIGHT)谢谢阅读项目PROJECT(J#,JNAME,DATE)谢谢阅读供应商 SUPPLIER(S#,SNAME,SADDR)谢谢阅读供应 P_P(J#,P#,TOTOAL)采购 P_S(P#,S#,QUANTITY)(1)试用SQL DDL语句定义上述五个基本表,并说明主键和外键。精品文档放心下载CREATETABLEPART**(P#CHAR(4)NOTNULL,PNAMECHAR(12)NOTNULL,精品文档放心下载COLORCHAR(10),WEIGHTREAL,谢谢阅读PRIMARYKEY(P#))CREATETABLEPROJECT(J#CHAR(4)NOTNULL,JNAMECHAR(12)NOTNULL,精品文档放心下载DATEDATE,PRIMARYKEY(J#))CREATETABLESUPLIER(S#CHAR(4)NOTNULL,SNAMECHAR(12),SADDRVARCHAR(20),精品文档放心下载PRIMARYKEY(S#))CREATETABLEP_P(J#CHAR(4),P#CHAR(4),TOTALINTEGER,谢谢阅读PRIMARYKEY(J#,P#),FOREIGNKEY(J#)REFERENCEPROJECT(J#),精品文档放心下载FOREIGNKEY(P#)REFERENCEPART(P#))谢谢阅读CREATETABLEP_S(P#CHAR(4),S#CHAR(4),QUANTITYINTEGER,精品文档放心下载PRIMARYKEY(P#,S#),**FOREIGNKEY(P#)REFERENCEPART(P#),精品文档放心下载FOREIGNKEY(S#)REFERENCESUPLIER(S#))精品文档放心下载(2)试将PROGECT、P_P、PART三个基本表的自然联接定义为一个视图VIEW1,PART、P_S、SUPPLIER三个基本表的自然联接定义为一个视图VIEW2。谢谢阅读CREATEVIEWVIEW1(J#,JNAME,DATE,P#,PNAME,COLOR,WEIGHT,TOTAL)感谢阅读AS SELECTPROJECT.J#,JNAME,DATE,PART.P#,PNAME,COLOR,WEIGHT,TOTAL谢谢阅读FROMPROJECT,PART,P_PWHEREPART.P#=P_P.P#ANDP_P.J#=PROJECT.J#谢谢阅读CREATE VIEWVIEW2(P#,PNAME,COLOR,WEIGHT,S#,SNAME,SADDR,QUANTITY)精品文档放心下载AS SELECTPART.P#,PNAME,COLOR,WEIGHT,SUPPLIER.S#,SNAME,SADDR,QUANTITY感谢阅读FROMPART,P_S,SUPPLIERWHEREPART.P#=P_S.P#ANDP_S.S#=SUPPLIER.S#谢谢阅读(3)试在上述两个视图的基础上进行数据查询:1)检索上海的供应商所供应的零件的编号和名字。SELECTP#,PNAMEFROMVIEW2WHERESADDR='SHANGHAI'感谢阅读**2)检索项目J4所用零件的供应商编号和名字。SELECTS#,SNAMEFROMVIEW2WHEREP#IN(SELECTP#FROMVIEW1精品文档放心下载WHEREJ#='J4')5.8 对于教学数据库中基本表SC,已建立下列视图:感谢阅读CREATE VIEW S_GRADE(S#,C_NUM,AVG_GRADE)感谢阅读AS SELECT S#,COUNT(C#),AVG(GRADE)精品文档放心下载FROM SCGROUP BY S#试判断下列查询和更新是否允许执行。若允许,写出转换到基本表SC上的相应操作。精品文档放心下载(1)SELECT *FROM S_GRADE允许SELECTS#,COUNT(C#),AVG(GRADE)FROMSCGROUPBYS#精品文档放心下载(2)SELECT S#,C_NUMFROM S_GRADEWHERE AVG_GRADE>80允许SELECTS#,COUNT(C#)FROMSCWHEREAVG(GRADE)>80精品文档放心下载(3)SELECT S#,AVG_GRADEFROM

温馨提示

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

评论

0/150

提交评论