问答题
设在采用SQL Server 2008数据库的图书馆应用系统中有三个基本表,表结构如下所示,请用SQL语句完成下列两个查询: BORROWER: 借书证号 姓名 系名 班级 12011106 蒋辉文 计算机系 12-1 12011107 王丽 计算机系 12-1 12012113 范园园 信息系 12-2 LOANS: 借书证号 图书馆登记号 借书日期 12011106 T001001 2012.01.02 12012113 T001026 2013.02.06 BOOKS: 索书号 书名 作者 图书登记号 出版社 价格 TP311.1 数据库系统 李明 T001001 科学 19.00 TF311.2 二级C语言 王珊 T001026 人民 32.00
问答题
检索至少借了5本书的同学的借书证号、姓名、系名和借书数量。
【正确答案】正确答案:SELECT LOANS.借书证号,姓名,系名,COUNT(*)AS借书数量 FROM BORROWER,LOANS WHERE BORROWER.借书证号=LANS.借书证号 GROUP BY LOANS.借书证号 HAVING COUNT(*)>=5;
【答案解析】解析:采用两表联合查询。以两表“借书证号”为相等条件,在结果集中用GROuP BY按照“借书证号”来分类,并且用HAVING关键字统计出符合条件的记录数。
问答题
检索借书和王丽同学所借图书中的任意一本相同的学生姓名、系名、书名和借书日期。
【正确答案】正确答案:SELECT姓名,系名,书名,借书日期 FROM BORROWER.LOANS,BOOKS WHFRR BORROWER.借书证号=LOANS.借书证号AND LOANS.图书登记号=BOOKS.图书登记号 AND索书号IN ( SELECT索书号FROM BORROWER,LOANS,BOOKS WHERE BORROW.借书证号=LOANS.借书证号 AND LOANS.图书馆登记号=BOOKS.图书登记号 AND姓名="王丽'' )
【答案解析】解析:采用IN关键字进行两表联合查询,在BORROWER和LOANS联合的结果集中查找满足第三个表指定的条件。