版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
数据库原理第五章课后答案数据库原理第五章课后答案数据库原理第五章课后答案数据库原理第五章课后答案编制仅供参考审核批准生效日期地址:电话:传真:邮编:对于教学数据库的三个基本表
学生S(S#,SNAME,AGE,SEX)
学习SC(S#,,GRADE)
课程C(C#,CNAME,TEACHER)
试用SQL的查询语句表达下列查询:
(1)检索LIU老师所授课程的课程号和课程名。
SELECTC#,CNAME
FROMC
WHERETEACHER=‘LIU’
(2)检索年龄大于23岁的男学生的学号和姓名。
SELECTS#,SNAME
FROMS
WHERE(AGE>23)AND(SEX=‘M’)
(3)检索至少选修LIU老师所授课程中一门课程的女学生姓名。
SELECTSNAME
FROMS
WHERESEX=‘F’ANDS#IN
(SELECTS#
FROMSC
WHEREC#IN
(SELECTC#
FROMC
WHERETEACHER=‘LIU’)
NOTICE:有多种写法,比如联接查询写法:
SELECTSNAME
FROMS,SC,C
WHERESEX=‘F’AND#=#AND#=#ANDTEACHER='LIU'但上一种写法更好一些。
(4)检索WANG同学不学的课程的课程号。
SELECTC#
FROMC
WHEREC#NOTIN
(SELECTC#
FROMSC
WHERES#IN
(SELECTS#
FROMS
WHERESNAME='WANG'))
(5)检索至少选修两门课程的学生学号。
SELECTDISTINCT
FROMSCX,SCY
WHERE=AND<>
Notice:对表SC进行自连接,X,Y是SC的两个别名。
(6)检索全部学生都选修的课程的课程号与课程名。SELECTC#,CNAMEFROMCWHERENOTEXISTS(SELECT*FROMSWHERES#NOTIN(SELECT*FROMSCWHERE#=#))要从语义上分解:(1)选择课程的课程号与课程名,不存在不选这门课的同学。
其中,“不选这门课的同学”可以表示为:SELECT*FROMSWHERES#NOTIN(SELECT*FROMSCWHERE#=#)或者SELECT*FROMSWHERENOTEXISTS(SELECT*FROMSCWHERE#=#AND#=#)
(7)检索选修课程包含LIU老师所授课的学生学号。
SELECTDISTINCTS#
FROMSC
WHEREC#IN
(SELECTC#
FROMC
WHERETEACHER='LIU'))
(8)统计有学生选修的课程门数。
SELECTCOUNT(DISTINCTC#)FROMSC
(9)求选修C4课程的学生的平均年龄。
SELECTAVG(AGE)
FROMS
WHERES#IN
(SELECTS#
FROMSC
WHEREC#='C4')
或者,
SELECTAVG(AGE)
FROMS,SC
WHERE#=#ANDC#='004'
(10)求LIU老师所授课程的每门课程的学生平均成绩。
SELECTCNAME,AVG(GRADE)
FROMSC,C
WHERE#=#ANDTEACHER='LIU'
GROUPBYC#
(11)统计每门课程的学生选修人数(超过10人的课程才统计)。要求输出课程号和选修人数,查询结果按人数降序排列,若人数相同,按课程号升序排列。
SELECTDISTINCTC#,COUNT(S#)
FROMSC
GROUPBYC#
HAVINGCOUNT(S#)>10
ORDERBY2DESC,C#ASC
(12)检索学号比WANG同学大,而年龄比他小的学生姓名。
SELECT
FROMSASX,SASY
WHERE='WANG'AND#>#AND<
(13)检索姓名以WANG打头的所有学生的姓名和年龄。
SELECTSNAME,AGE
FROMS
WHERESNAMELIKE'WANG%'
(14)在SC中检索成绩为空值的学生学号和课程号。
SELECTS#,C#
FROMSC
WHEREGRADEISNULL
(15)求年龄大于女同学平均年龄的男学生姓名和年龄。
SELECTSNAME,AGE
FROMSASX
WHERE='男'AND>(SELECTAVG(AGE)FROMSASYWHERE='女')
(16)求年龄大于所有女同学年龄的男学生姓名和年龄。
SELECTSNAME,AGE
FROMSASX
WHERE='男'AND>ALL(SELECTAGEFROMSASYWHERE='女')
试用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,SEX
FROMSWHERENOTEXISTS
(SELECT*FROMSCWHERE
GRADE<80AND#=#)
(3)在基本表SC中删除尚无成绩的选课元组。
DELETEFROMSC
WHEREGRADEISNULL
(4)把WANG同学的学习选课和成绩全部删去。
DELETEFROMSC
WHERES#IN
(SELECTS#
FROMS
WHERESNAME='WANG')
(5)把选修MATHS课不及格的成绩全改为空值。
UPDATESC
SETGRADE=NULL
WHEREGRADE<60ANDC#IN
(SELECTC#
FROMC
WHERECNAME='MATHS')
(6)把低于总平均成绩的女同学成绩提高5%。
UPDATESC
SETGRADE=GRADE*
WHEREGRADE<(SELECTAVG(GRADE)FROMSC)ANDS#IN(SELECTS#FROMSWHERESEX='F')
(7)在基本表SC中修改C4课程的成绩,若成绩小于等于75分时提高5%,若成绩大于75分时提高4%(用两个UPDATE语句实现)。
UPDATESC
SETGRADE=GRADE*
WHEREC#='C4'ANDGRADE<=75
UPDATESC
SETGRADE=GRADE*
WHEREC#='C4'ANDGRADE>75
在第1章例中提到“仓库管理”关系模型有五个关系模式:
零件PART(P#,PNAME,COLOR,WEIGHT)
项目PROJECT(J#,JNAME,DATE)
供应商SUPPLIER(S#,SNAME,SADDR)
供应P_P(J#,P#,TOTOAL)
采购P_S(P#,S#,QUANTITY)
(1)试用SQLDDL语句定义上述五个基本表,并说明主键和外键。
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)
ASSELECT#,JNAME,DATE,#,PNAME,COLOR,WEIGHT,TOTAL
FROMPROJECT,PART,P_P
WHERE#=#AND#=#
CREATEVIEWVIEW2(P#,PNAME,COLOR,WEIGHT,S#,SNAME,SADDR,QUANTITY)
ASSELECT#,PNAME,COLOR,WEIGHT,#,SNAME,SADDR,QUANTITY
FROMPART,P_S,SUPPLIER
WHERE#=#AND#=#
(3)试在上述两个视图的基础上进行数据查询:1)检索上海的供应商所供应的零件的编号和名字。SELECTP#,PNAMEFROMVIEW2WHERESADDR='SHANGHAI'2)检索项目J4所用零件的供应商编号和名字。SELECTS#,SNAMEFROMVIEW2WHEREP#IN(SELECTP#FROMVIEW1WHEREJ#='J4')对于教学数据库中基本表SC,已建立下列视图:
CREATEVIEWS_GRADE(S#,C_NUM,AVG_GRADE)
ASSELECTS#,COUNT(C#),AVG(GRADE)
FROMSC
GROUPBYS#
试判断下列查询和更新是否允许执行。若允许,写出转换到基本表SC上的相应操作。
(1)SELECT*
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 机动车驾驶员三力测试题及答案
- 反复种植失败子宫内膜容受性评估流程标准共识
- PACK岗位上岗考核试题及详细答案
- 雨伞制作安全操作规程
- 水处理药剂投料配料工安全规程
- 2026年病房管理制度考试题及答案
- 2026年内镜护理试题及答案
- 2026年煤矿三级安全教育设备操作人员安全知识试卷及答案
- 2027届福建省漳州市平和第一中学九年级数学第一学期期末监测模拟试题含解析
- 解剖学绘图与识别测试卷及答案
- 2026年公文筐考试试题及答案
- 信永中和校招笔试题库
- 服装陈列设计与展示课程
- 政教处量化管理奖惩制度
- 水利局采购内部控制制度
- 陶艺成型技法课件
- GB/T 23280-2025开式压力机精度
- T-SZRCA 011-2025 人形机器人专用线缆技术规范
- GB/T 17456.2-2025球墨铸铁管、管件和附件外表面锌基涂层第2部分:带终饰层的富锌涂料涂层
- 团委竞聘笔试题型及答案
- 徒步应急知识培训总结课件
评论
0/150
提交评论