教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 精品文档 > 法律文档 >

数据库系统及应用教程(清华大学出版社)习题答案(根据老师上课(4)

来源:网络收集 时间:2026-09-05
导读: FOREIGN KEY约束用于建立和加强两个表(主表和从表)的一列或多列数据之间的链接。 5.在图书销售数据库中有表结构BOOK(BOOK_ID,BOOK_NAME,PRICR)和 AUTHOR(AUTHOR_NAME,BOOK_ID,ADDRESS),写出完成下列操作的T-SQL

FOREIGN KEY约束用于建立和加强两个表(主表和从表)的一列或多列数据之间的链接。

5.在图书销售数据库中有表结构BOOK(BOOK_ID,BOOK_NAME,PRICR)和 AUTHOR(AUTHOR_NAME,BOOK_ID,ADDRESS),写出完成下列操作的T-SQL语句。

(1) 设置BOOK中BOOK_ID为主键; (2) 设置AUTHOR中BOOK_ID为外键;

(3) 在表BOOK中插入数据(’1203’,’数据库系统与应用教程’,32.8)

(4) 修改表BOOK中BOOK_ID为“1013”的PRICR,使之为原PRICR的0.75倍。 (5) 删除表AUTHOR中的AUTHOR_NAME为“王昌辉”的记录。

解:

(1) USE EDUC

GO

ALTER TABLE BOOK

ADD CONSTRAINT PK_BOOK_ID PRIMARY KEY CLUSTERED(BOOK_ID) GO

(2) USE EDUC

GO

ALTER TABLE AUTHOR

ADD CONSTRAINT FK_AUTHOR_BOOK FOREIGN KEY(BOOK_ID) REFERENCES

BOOK(BOOK_ID)

GO

(3) USE EDUC

GO

INSERT into BOOK VALUES(’1203’,’数据库系统与应用教程’,32.8) GO

(4) USE EDUC

GO

UPDATE BOOK

SET PRICR=PRICR*0.75 WHERE BOOK_ID=’1013’

(5) USE EDUC

GO

DELETE AUTHOR

WHERE AUTHOR_NAME=’王昌辉’ GO

习 题 6

1.名词解释:

连接查询 子查询 无关子查询 相关子查询 游标

答:连接查询:是关系数据库中最主要的查询,主要包括内连接、外连接和交叉连接等。通过连接运算符可以实现多个表查询。

子查询:当一个查询是另一个查询的条件时,称之为子查询。子查询可以使用几个简单命令构造功能强大的复合命令。

无关子查询:不依赖于父查询的字查询。它执行的过程是:首先执行子查询语句,得到的子查询结果集传递给父查询语句使用。

相关子查询:SELECT语句嵌套时,子查询中查询条件依赖于外层查询中的值,因此子查询要反复求值供外层查询使用。这种子查询称为相关子查询。

游标:是系统为用户开设的一个数据缓冲区,存放SQL语句的执行结果。它从包括多个元组的集合中每次读取一个元组的机制。

2.对于教学管理数据库的三个基本表 S(SNO,SNAME, SEX, AGE,SDEPT) SC(SNO,CNO,GRADE)

C(CNO,CNAME,CDEPT,TNAME) 试用T-SQL查询语句表达下列查询:

(1) 查询“王志强”所授课程的课程号和课程名。 (2) 查询年龄大于20岁的男学生的学号和姓名。

(3) 查询学号为S6的学生所学课程的课程名和任课教师名。

(4) 查询至少选修“王志强”老师所授课程中一门课程的女学生姓名。

(5) 查询“李小刚”同学不学的课程的课程号。

(6) 查询至少选修两门课程的学生学号。 解:

(1) USE JXGL

GO

SELECT CNO,CNAME FROM C

WHERE TNAME='王志强' GO

(2) USE JXGL

GO

SELECT SNO,SNAME FROM S

WHERE SEX='男' AND AGE>20 GO

(3) USE JXGL

GO

SELECT CNAME,TNAME

FROM S JOIN SC ON S.SNO=SC.SNO AND S.SNO='S6'

JOIN C ON SC.CNO=C.CNO

GO

(4) USE JXGL

GO

SELECT SNAME FROM S WHERE SNO IN

(

SELECT SNO FROM SC WHERE CNO IN (SELECT CNO

FROM C

WHERE TNAME='王志强' ) )

GO

(5) USE JXGL

GO

SELECT CNO FROM C EXCEPT SELECT CNO

FROM S JOIN SC ON S.SNO=SC.SNO AND S.SNAME='李小刚' GO

(6) USE JXGL

GO

select SNO,count(CNO) as 选修门数 from sc

group by SNO having count(CNO)>1 GO

3. 试用T-SQL查询语句表达下列对习题2数据库中三个基本表S、SC、C的查询: (1) 统计有学生选修的课程门数。 (2) 求选修C4号课程的学生的平均年龄。

(3) 求“王志强”老师所授课程的每门课程的学生平均成绩。

(4) 统计每门课程的学生选修人数(超过10人的课程才统计)。要求输出课程号和选修人数,查询结果按人数降序排列,若人数相同,按课程号升序排列。 (5) 查询姓“王”的所有学生的姓名和年龄。 (6) 在SC中查询成绩为空值的学生学号和课程号。

(7) 查询年龄大于女同学平均年龄的男学生姓名和年龄。 解:

(1) USE JXGL

GO

SELECT COUNT(DISTINCT CNO) FROM SC GO

(2) USE JXGL

GO

SELECT AVG(AGE)

FROM S JOIN SC ON S.SNO=SC.SNO AND CNO='C4' GO

(3) USE JXGL

GO

SELECT SC.CNO,AVG(GRADE)

FROM SC JOIN C ON SC.CNO=C.CNO AND TNAME='王志强' GROUP BY SC.CNO GO

(4) USE JXGL

GO

SELECT CNO,COUNT(SNO) FROM SC

GROUP BY CNO HAVING COUNT(*)>10 ORDER BY 2 DESC,1 GO

(5) USE JXGL

GO

SELECT SNAME,AGE FROM S

WHERE SNAME LIKE '王%' GO

(6) USE JXGL

GO

…… 此处隐藏:741字,全部文档内容请下载后查看。喜欢就下载吧 ……
数据库系统及应用教程(清华大学出版社)习题答案(根据老师上课(4).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/wendang/436181.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)