数据库基本知识第五章课后答案解析文档格式.docx

上传人:b****1 文档编号:752193 上传时间:2023-04-29 格式:DOCX 页数:10 大小:87.63KB
下载 相关 举报
数据库基本知识第五章课后答案解析文档格式.docx_第1页
第1页 / 共10页
数据库基本知识第五章课后答案解析文档格式.docx_第2页
第2页 / 共10页
数据库基本知识第五章课后答案解析文档格式.docx_第3页
第3页 / 共10页
数据库基本知识第五章课后答案解析文档格式.docx_第4页
第4页 / 共10页
数据库基本知识第五章课后答案解析文档格式.docx_第5页
第5页 / 共10页
数据库基本知识第五章课后答案解析文档格式.docx_第6页
第6页 / 共10页
数据库基本知识第五章课后答案解析文档格式.docx_第7页
第7页 / 共10页
数据库基本知识第五章课后答案解析文档格式.docx_第8页
第8页 / 共10页
数据库基本知识第五章课后答案解析文档格式.docx_第9页
第9页 / 共10页
数据库基本知识第五章课后答案解析文档格式.docx_第10页
第10页 / 共10页
亲,该文档总共10页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

数据库基本知识第五章课后答案解析文档格式.docx

《数据库基本知识第五章课后答案解析文档格式.docx》由会员分享,可在线阅读,更多相关《数据库基本知识第五章课后答案解析文档格式.docx(10页珍藏版)》请在冰点文库上搜索。

数据库基本知识第五章课后答案解析文档格式.docx

WHEREC#IN

(SELECTC#

FROMS,SC,C

ANDSC.C#=C.C#

ANDTEACHER='

LIU'

但上一种写法更好一些。

(4)检索WANG同学不学的课程的课程号。

SELECTC#

WHEREC#NOTIN

WHERES#IN

WHERESNAME='

WANG'

))

(5)检索至少选修两门课程的学生学号。

SELECTDISTINCTX.SNO

FROMSCX,SCY

WHEREX.SNO=Y.SNOANDX.CNO<

>

Y.CNO

Notice:

对表SC进行自连接,X,Y是SC的两个别名。

(6)检索全部学生都选修的课程的课程号与课程名。

SELECTC#,CNAME

WHERENOTEXISTS

(SELECT*

WHERES#NOTIN

WHERESC.C#=C.C#))

要从语义上分解:

(1)选择课程的课程号与课程名,不存在不选这门课的同学。

其中,“不选这门课的同学”可以表示为:

或者

SELECT*

SC.C#=C.C#)

SELECTDISTINCTS#

WHERETEACHER='

SELECTCOUNT(DISTINCTC#)FROMSC

 

(9)

求选修C4课程的学生的平均年龄。

SELECTAVG(AGE)

WHEREC#='

C4'

或者,

FROMS,SC

(10)求LIU老师所授课程的每门课程的学生平均成绩。

SELECTCNAME,AVG(GRADE)

FROMSC,C

WHERESC.C#=C.C#ANDTEACHER='

GROUPBYC#

(11)统计每门课程的学生选修人数(超过10人的课程才统计)。

要求输出课程号和选修人数,查询结果按人数降序排列,若人数相同,按课程号升序排列。

SELECTDISTINCTC#,COUNT(S#)

GROUPBYC#

HAVINGCOUNT(S#)>

10

ORDERBY2DESC,C#ASC

(12)检索学号比WANG同学大,而年龄比他小的学生姓名。

SELECTX.SNAME

FROMSASX,SASY

WHEREY.SNAME='

ANDX.S#>

Y.S#ANDX.AGE<

Y.AGE

(13)检索姓名以WANG打头的所有学生的姓名和年龄。

WHERESNAMELIKE'

WANG%'

(14)在SC中检索成绩为空值的学生学号和课程号。

SELECTS#,C#

WHEREGRADEISNULL

(15)求年龄大于女同学平均年龄的男学生姓名和年龄。

SELECTSNAME,AGE

FROMSASX

WHEREX.SEX='

男'

ANDX.AGE>

(SELECTAVG(AGE)FROMSASY

WHEREY.SEX='

女'

(16)求年龄大于所有女同学年龄的男学生姓名和年龄。

ALL(SELECTAGEFROMSASYWHERE

Y.SEX='

5.6试用SQL更新语句表达对教学数据库中三个基本表S、SC、C的各个更

新操作:

(1)往基本表S中插入一个学生元组(’S9'

‘WU'

18)。

INSERTINTOS(S#,SNAME,AGE)VALUES('

59'

'

WU'

18)

送往另一个已存在的基本表STUDENT(8#,SANME,SEX)。

INSERTINTOSTUDENT(S#,SNAME,SEX)

SELECTS#,SNAME,SEX

(SELECT*FROMSCWHERE

GRADE<

80ANDS.S#=SC.S#)

DELETEFROMSC

把选修MATHS课不及格的成绩全改为空值。

UPDATESC

SETGRADE=NULL

WHEREGRADE<

60ANDC#IN

WHERECNAME='

MATHS'

(6)把低于总平均成绩的女同学成绩提高5%。

SETGRADE=GRADE*1.05

(SELECTAVG(GRADE)FROMSC)ANDS#IN(SELECTS#

FROMSWHERESEX='

F'

(7)在基本表SC中修改C4课程的成绩,若成绩小于等于75分时提高5%,若成绩大于75分时提高

4%(用两个UPDATE语句实现)。

ANDGRADE<

=75

SETGRADE=GRADE*1.04

ANDGRADE>

75

5.7在第1章例1.4中提到“仓库管理”关系模型有五个关系模式:

零件PART(P#,PNAME,COLOR,WEIGHT)

项目PROJECT(J#,JNAME,DATE)

供应商SUPPLIER(S#,SNAME,SADDR)

CREATETABLEPART

(P#CHAR(4)NOTNULL,PNAMECHAR(12)NOTNULL,

COLORCHAR(10),WEIGHTREAL,

PRIMARYKEY(P#))

CREATETABLEPROJECT(J#CHAR(4)NOTNULLJNAMECHAR(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、

VIEW2。

SUPPLIER三个基本表的自然联接定义为一个视图

CREATEVIEWVIEW1(J#,JNAME,DATE,P#,PNAME,COLOR,WEIGHT,TOTAL)

PROJECT.J#,JNAME,DATE,PART.P#,PNAME,COLOR,WEIGHT,TOTAL

FROMPROJECT,PART,P_P

WHEREPART.P#=PP.P#ANDPP.J#=PROJECT」#

VIEW

CREATE

VIEW2(P#,PNAME,COLOR,WEIGHT,S#,SNAME,SADDR,QUANTITY)

PART.P#,PNAME,COLOR,WEIGHT,SUPPLIER.S#,SNAME,SADDR,QUANTITY

FROMPART,P_S,SUPPLIER

WHEREPART.P#=P_S.P#ANDP_S.S#=SUPPLIER.S#

(3)试在上述两个视图的基础上进行数据查询:

1)检索上海的供应商所供应的零件的编号和名字。

SELECTP#,PNAMEFROMVIEW2WHERESADDR='

SHANGHAI'

SELECTS#,SNAMEFROMVIEW2WHEREP#IN(SELECTP#FROMVIEW1

WHEREJ#='

J4'

FROMS—GRADE

允许

SELECTS#,COUNT(C#),AVG(GRADE)FROMSCGROUPBYS#

(2)SELECTS#,C—NUM

WHEREAVG—GRADE>

80

SELECTS#,COUNT(C#)FROMSCWHEREAVG(GRADE)>

80

WHERES#='

S4'

SELECTS#,AVG(GRADE)

FROMSCASX

WHERECOUNT(X.C#)>

(SELECTCOUNT(Y.C#)FROMSCASYWHERE

Y.S#='

S4'

GROUPBYS#

(4)UPDATES—GRADE

SETC—NUM=C—NUM+1

不允许

(5)DELETEFROMS—GRADE

WHEREC—NUM>

4

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

当前位置:首页 > 经管营销 > 经济市场

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2