当前位置:首页 > 《数据库原理与应用》(孟凡荣 闫秋艳)课后习题答案
(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
共分享92篇相关文档