实验二 表的连接和嵌套查询实验
一、实验目的 1、熟练掌握SQL Server查询分析器的使用方法,加深对SQL和Transact-SQL语言查询语句的理解。2、掌握多表的连接查询与嵌套查询语句的正确写法和实验操作方法。 二、实验内容 1、基于实验一建立的 “图书读者数据库”(Book_Reader_DB),输入部分虚拟数据;假定实验一的实验后的结果数据库的关系模式如下: 图书(书号,类别,出版社,作者,书名,定价,数量,购买日期,备注) 读者(编号,姓名,单位,性别,电话) 借阅(书号,读者编号,借阅日期,还书日期) 2、打开查询分析器,并建立与服务器的连接,在数据库对象下拉框中选择“Book_Reader_DB”,在查询分析器输入区中输入Transact-SQL语句,然后点击“查询”菜单中的“执行”菜单项(或用F5快捷键),执行输入区的Transact-SQL语句,如下图所示; 3、用连接查询或嵌套查询的方法实现下列查询 在“图书读者数据库”(Book_Reader_DB)中,用连接查询的方法完成下列查询任务: ① 查询借阅了类别为“环境”类图书的所有读者编号、姓名及单位; SELECT reader.rno,rname,unit FROM book ,borrow,reader WHERE book.bno=borrow.bno AND borrow.rno=reader.rno AND book.category='computer'; ② 查询借阅过图书的读者编号、姓名及单位; SELECT reader.rno,rname,unit FROM book,borrow,reader WHERE book.bno=borrow.bno AND borrow.rno=reader.rno ; ③ 查询姓名为“李明”的读者目前借阅的图书书号和书名; SELECT book.bno,bname FROM book,borrow,reader WHERE book.bno=borrow.bno AND borrow.rno=reader.rno AND reader.rname='liming'; ④ 查询借书过期的所有读者姓名及所借图书名(假定借阅期为60天); SELECT book.bname,reader.rname FROM book,borrow,reader WHERE book.bno=borrow.bno AND borrow.rno=reader.rno AND (borrow.retdata-borrow.bordata)>60; ⑤ 查询没有借阅过图书的所有读者姓名; SELECT reader.rname FROM reader WHERE NOT EXISTS ( SELECT * FROM borrow WHERE reader.rno=borrow.rno ) ; ⑥ 查询借出次数超过10次的所有图书的书号和书名; SELECT book.bno,book.bname FROM book WHERE bno IN (SELECT bno FROM borrow GROUP BY bno HAVING COUNT(*)>10 ) ⑦ 查询除已还的书以外,目前借了5本或以上图书的读者编号和姓名; ⑧ 查询书库中除借出的图书外,现存的图书书号、书名、现存数量; 上述每项实验内容相应的实验步骤必须进行详细的记录,并将其整理后写在实验报告中。 三、实验环境与实验准备工作 实验环境:Microsoft Windows 2000操作系统,Microsoft SQL Server 2000数据库管理系统标准版或企业版。 实验准备工作:在开始本实验之前,请回顾教科书的相关内容(表的连接查询与嵌套查询语句的原理与语句格式)。 四、实验报告要求 1、根据实验内容和每一步骤实验的结果,按课程实验报告的撰写规范完成实验报告。报告手写,格式一定要规范。 2、实验报告至少包括以下内容:①实验目的;②实验环境;③实验内容、步骤、结果和实验过程中出现的问题;④实验过程中主要使用的Transact-SQL语句。 3、关于实验结果截图的说明:(1)结果可以用手写描述;(2)如果使用图片,只需要关键步骤和最后结果的截图。 4、实验报告由每班学习委员统一收齐,按老师指定的时间上交。
用户评论
表的查询都很详尽