《数据库原理与应用》(孟凡荣 闫秋艳)课后习题答案 联系客服

发布时间 : 星期六 文章《数据库原理与应用》(孟凡荣 闫秋艳)课后习题答案更新完毕开始阅读819f91acc77da26925c5b069

(3) 查询学号为S3的学生所学课程和课程号,课程名和任课教师姓名 SELECT C.课程号, 课程名, 任课教师姓名 FROM C, SC

WHERE SC.学号='S3' And C.课程号=SC.课程号

(4) 查询“张小飞”同学没有选修的课程的课程号和课程名; SELECT C.课程号, C.课程名 FROM C

WHERE 课程号 NOT IN (SELECT 课程号 FROM SC

WHERE 学号 IN

(SELECT 学号 FROM S WHERE 姓名='张小飞')); 或者 SELECT * FROM C

WHERE NOT EXISTS (SELECT SC.课程号 FROM SC,S

WHERE SC.课程号=C.课程号 AND S.学号=SC.学号 AND S.姓名='张小飞') 或者 SELECT * FROM C

WHERE 课程号 NOT IN (SELECT 课程号 FROM SC,S

WHERE S.学号=SC.学号 AND S.姓名='张小飞')

(5) 查询至少选修了3门课程的学生的学号和姓名; SELECT 学号, 姓名 FROM S

WHERE 学号 IN (SELECT 学号 FROM SC

GROUP BY 学号

HAVING COUNT (课程号)>=3)

(6) 查询全部学生都选修了的课程号和课程名; SELECT 课程号,课程名 FROM C

WHERE NOT EXISTS (SELECT 学号

17

FROM S

WHERE NOT EXISTS (SELECT 学号 FROM SC

WHERE SC.课程号=C.课程号 AND S.学号=SC.学号)) 或者

SELECT 课程号, 课程名 FROM C

WHERE NOT EXISTS ((SELECT 学号 FROM S) EXCEPT (SELECT 学号 FROM SC

WHERE SC.课程号=C.课程号))

(7) 在SC表中删除无成绩的选课纪录; DELETE * FROM SC

WHERE GRADE is null;

(8) 把“高等数学”的所有不及格成绩都改为60分; UPDATE SC SET 成绩 = 60

WHERE GRADE< 60 AND 课程号 = (SELECT 课程号 FROM C

WHERE 课程名='高等数学')

(9) 把低于总平均成绩的女同学的成绩提高5% UPDATE sc

SET 成绩 = 成绩*(1+0.05) WHERE 学号 in

(select 学号 from s where 性别='女') and 成绩 < (select avg(成绩) from sc);

(10) 向C中插入元组(“C8”,“VC++”,“王昆”) INSERT INTO c

VALUES ('C8', 'VC++', '王昆');

3-8图3-2中显示的数据库模式Library,用来记录书籍、借书人和书籍借出的情况,参照完整性在图中用有向弧来表示,请用SQL语言建立图中的关系模式,并完成下列操作:

18

图3-2 Library数据库模式

⑴ 查询“高等教育出版社”出版的所有图书名称和编号; ⑵ 查询所有作者是“郭雨辰”的图书的编号和名称; ⑶ 查询“李明”借过的所有图书的名称;

⑷ 查询“李明”从2008年1月1日到2009年1月1日期间借过的图书名称;

⑸ 列出从2008年1月1日到2009年1月1日期间没有被人借过的图书名称和编号; ⑹ 列出从2008年1月1日到2009年1月1日期间借出次数最多的10本图书名称; ⑺ 将“高等教育出版社”的电话改为“010-64054588”; 3-8 (1)

SELECT BookID , Title FROM Book

WHERE PublishName=’高等教育出版社’ (2)

SELECT BookID, Title FROM BookID, Book

WHERE Book.BookID=Author.BookID AND Author=’郭雨辰’ (3)

SELECT Title

FROM Book, Borrow, Borrower WHERE Borrow.CardID=Borrower.CardID AND Borrow.BookID=Book.BookID AND Borrower.Name=’李明’ (4)

SELECT Title

FROM Book, Borrow, Borrower

WHERE Borrow.CardID=Borrower.CardID AND Borrow. BookID=Book.BookID AND Borrower.Name=’李明’ AND DateOut BETWEEN 2008-1-1 AND.2009-1-1 (5)

SELECT Title

19

FROM Book

WHERE NOT EXISTS (SELECT *

FROM Borrow,Book

WHERE Borrow. BookID=Book.BookID AND Dateout Between 2008-1-1 AND 2009-1-1) (6)

SELECT top 10 Title FROM Book, Borrow

WHERE Borrow. BookID=Book.BookID AND Dateout Between 2008-1-1 AND 2009-1-1 GROUP BY Book.BookID

ORDER BY Book.BookID DESC (7)

UPDATE Publisher

SET Phone=’010-64054588’

WHERE Name=’高等教育出版社’

3-9 针对3.8建立的表,用SQL语言完成下列操作: ⑴ 把对所有表的INSERT权限授予“张丽”,并允许她将此权限授予其他用户; Grant INSERT to ‘张丽’ with grant option

⑵ 把查询和修改BORROWER的权限受给用户“王伟”。 Grant select, update on BORROWER to ‘王伟’

20