《数据库课后题答案》由会员分享,可在线阅读,更多相关《数据库课后题答案(4页珍藏版)》请在金锄头文库上搜索。
1、1)查询全体图书的图书号,书名,作者,出版社,单价。SELECT * FROM 图书2)查询全体图书的信息,其中单价打8折,并且将该列设置别名为打折价 。SELECT 图书号,书名,作者,出版社,单价*0.8 打折价 FROM 图书3)显示所有借阅者的读者号,并去掉重复行。SELECT DISTINCT 读者号 FROM 借阅4)查询所有单价在20到30之间的图书信息。SELECT * FROM 图书WHERE 单价 BETWEEN 20 AND 305)查询所有单价不在20到30之间的图书信息。SELECT * FROM 图书WHERE 单价 NOT BETWEEN 20.00 AND 30
2、.006)查询机械工业出版社、科学出版社、人民邮电出版社的图书信息SELECT * FROM 图书 WHERE 出版社 IN (机械工业出版社, 科学出版社, 人民邮电出版社)7)查询既不是机械工业出版社、也不是科学出版社出版的图书信息SELECT * FROM 图书 WHERE 出版社 NOT IN (机械工业出版社, 科学出版社)8)查找姓名的第二个字符是建并且只有两三个字符的读者的读者号、姓名。SELECT 读者号,姓名 FROM 读者 WHERE 姓名 LIKE _建_9)查找姓名以王开头的所有读者的读者号、姓名。SELECT 读者号,姓名 FROM 读者 WHERE 姓名 LIKE
3、王%10)查找姓名以王、张或李开头的所有读者的读者号、姓名。SELECT 读者号,姓名 FROM 读者 WHERE 姓名 LIKE 王张李%11)查找姓名不是以王、张或李开头的所有读者的读者号、姓名。SELECT 读者号,姓名 FROM 读者 WHERE 姓名 NOT LIKE 王张李%12)查询无归还日期的借阅信息。SELECT * FROM 借阅 WHERE 归还日期 IS NULL13)查询有归还日期的借阅信息。SELECT * FROM 借阅 WHERE 归还日期 IS NOT NULL14)查询单价在20元以上,30元以下的机械工业出版社出版的图书名,单价。SELECT 书名,单价
4、FROM 图书 WHERE 出版社=机械工业出版社 AND 单价20.00 AND 单价 2 ORDER BY COUNT(图书号) DESC(6)针对以上三个表,用SQL语言完成以下各项多表连接查询、子查询、组合查询1)查询读者的基本信息以及他/她借阅的情况。SELECT * FROM 读者, 借阅 WHERE 读者.读者号 = 借阅. 读者号 2)查询读者的读者号、姓名、借阅的图书名、借出日期、归还日期。SELECT 读者.读者号,姓名,书名,借出日期,归还日期FROM 读者, 图书,借阅WHERE 读者.读者号 = 借阅.读者号 AND 图书.图书号=借阅.图书号3)查询借阅了机械工业出
5、版社出版,并且书名中包含数据库三个字的图书的读者,显示读者号、姓名、书名、出版社,借出日期、归还日期。SELECT 读者.读者号,姓名,书名,出版社,借出日期,归还日期FROM 读者,图书,借阅WHERE 读者.读者号 = 借阅.读者号 AND 图书.图书号=借阅.图书号 AND 出版社=机械工业出版社 AND 书名 LIKE %数据库%4)查询至少借阅过1本机械工业出版社出版的书的读者的读者号、姓名、书名,借阅本数,并按借阅本数多少降序排列。SELECT 借阅.读者号,姓名,书名, COUNT(借阅.图书号) 借阅本数 FROM 读者, 图书,借阅WHERE 读者.读者号 = 借阅.读者号
6、AND 图书.图书号=借阅.图书号 AND 出版社=机械工业出版社GROUP BY 借阅.读者号, 姓名,书名 HAVING COUNT(借阅.图书号) =1ORDER BY COUNT(借阅.图书号) DESC5)查询与王平的办公电话相同的读者的姓名。SELECT 姓名 FROM 读者 where 办公电话 in (select办公电话 from 读者 where 姓名= 王平6)查询办公电话为88320701的所有读者的借阅情况,要求包括借阅了书籍的读者和没有借阅的读者,显示他们的读者号、姓名、图书号、借阅日期。SELECT 读者.读者号,姓名,图书号,借出日期FROM 读者 LEFT J
7、OIN 借阅 ON 读者.读者号= 借阅.读者号WHERE 办公电话=883207017)查询所有单价小于平均单价的图书号、书名、出版社SELECT 图书号,书名,出版社 FROM 图书WHERE 单价 ( SELECT MAX(单价) FROM 图书 WHERE 出版社=机械工业出版社)9)查询科学出版社的图书中单价比机械工业出版社最低单价高的的图书书名、单价。SELECT 图书号,单价 FROM 图书WHERE 出版社=科学出版社 AND 单价( SELECT MIN(单价) FROM 图书 WHERE 出版社=机械工业出版社)10)查询已被借阅过并已归还的图书信息。SELECT * FR
8、OM 图书WHERE 图书号 IN (SELECT 图书号 FROM 借阅 WHERE 归还日期 IS NOT NULL)11)查询从未被借阅过的图书信息。SELECT * FROM 图书WHERE 图书号 NOT IN (SELECT 图书号 FROM 借阅)12)查询正在借阅的图书信息。SELECT * FROM 图书 B1WHERE B1.图书号 IN (SELECT B2.图书号 FROM 借阅 B2WHERE B1.图书号=B2.图书号 AND B2.归还日期 IS NULL)13)查询借阅了机械工业出版社出版的书名中含有数据库书三个字的图书、或者借阅了科学出版社出版的书名中含有数据
9、库书三个字的图书的读者姓名、书名。SELECT 姓名,书名FROM 图书,读者,借阅WHERE 图书.图书号=借阅 .图书号 AND 读者.读者号=借阅.读者号AND 出版社=机械工业出版社 AND 书名 LIKE %数据库%UNIONSELECT 姓名,书名FROM 图书,读者,借阅WHERE 图书.图书号=借阅 .图书号 AND 读者.读者号=借阅.读者号AND 出版社=科学出版社 AND 书名 LIKE %数据库%14)查询借阅了机械工业出版社出版的书名中含有数据库书三个字的图书并且也借阅了科学出版社出版的书名中含有数据库书三个字的图书的读者姓名、书名。SELECT 姓名,书名FROM
10、图书,读者 R1,借阅WHERE 图书.图书号=借阅 .图书号 AND R1.读者号=借阅.读者号AND 出版社=机械工业出版社 AND 书名 LIKE %数据库%AND EXISTS(SELECT *FROM 图书,读者 R2,借阅WHERE 图书.图书号=借阅 .图书号 AND R2.读者号=借阅.读者号AND 出版社= 科学出版社 AND 书名 LIKE %数据库%AND R1.读者号=R2.读者号)15)查询借阅了机械工业出版社出版的书名中含有数据库书三个字的图书但没有借阅了科学出版社出版的书名中含有数据库书三个字的图书的读者姓名、书名。SELECT 姓名,书名FROM 图书,读者 R1,借阅WHERE 图书.图书号=借阅 .图书号 AND R1.读者号=借阅.读者号AND 出版社=机械工业出版社 AND 书名 LIKE %数据库%AND NOT EXISTS(SELECT * FROM 图书,读者 R2,借阅WHERE 图书.图书号=借阅 .图书号 AND R2.读者号=借阅.读者号AND 出版社= 科学出版社 AND 书名 LIKE %数据库% AND R1.读者号=R2.读者号)