实验二表的连接和嵌套查询实验一、实验目的1、熟练掌握SQLServer查询分析器的使用方法,加深对SQL和Transact-SQL语言查询语句的理解。2、掌握多表的连接查询与嵌套查询语句的正确写法和实验操作方法。二、实验内容1、基于实验一建立的“图书读者数据库”(Book_Reader_DB),输入部分虚拟数据;假定实验一的实验后的结果数据库的关系模式如下:图书(书号,类别,出版社,作者,书名,定价,数量,购买日期,备注)读者(编号,姓名,单位,性别,电话)借阅(书号,读者编号,借阅日期,还书日期)输入部分虚拟数据如下:图书表书号类别出版社作者书名定价数量购买日期备注0001计算机清华大学出版社严蔚敏数据结构15.00101999-05-080002计算机清华大学出版社单建魁数据库系统实验指导15.00302000-03-010003环境南京大学出版社王小容环境化学32.00202000-06-090004环境清华大学出版社何强环境学导论35.00202000-06-120005计算机电子工业出版社傅清祥算法与数据结构36.70102000-07-150006计算机清华大学出版社蔡自兴人工智能及其应用28.00102000-09-17…………………………………………….读者表编号姓名单位性别电话0001张红电气学院女010323245650002杨小鹏信息学院男010323336670003王俊信息学院男010435467890004刘建建筑学院男01023242526…………………………借阅表书号读者编号借阅日期还书日期000100022001-9-22001-10-1000200022001-9-122001-10-11000600022002-1-122002-2-1000300012001-7-102001-8-7000400012001-7-22001-7-22000500012001-9-152001-9-15000200032001-10-152001-11-1000600032002-2-102002-2-20000300042001-8-172001-8-29000400042001-7-252001-8-15……………………2、打开查询分析器,并建立与服务器的连接,在数据库对象下拉框中选择“Book_Reader_DB”,在查询分析器输入区中输入Transact-SQL语句,然后点击“查询”菜单中的“执行”菜单项(或用F5快捷键),执行输入区的Transact-SQL语句,如下图所示;3、用连接查询或嵌套查询的方法实现下列查询在“图书读者数据库”(Book_Reader_DB)中,用连接查询的方法完成下列查询任务:①查询借阅了类别为“环境”类图书的所有读者编号、姓名及单位;②查询借阅过图书的读者编号、姓名及单位;③查询姓名为“李明”的读者目前借阅的图书书号和书名;④查询借书过期的所有读者姓名及所借图书名(假定借阅期为60天);⑤查询没有借阅过图书的所有读者姓名;⑥查询借出次数超过10次的所有图书的书号和书名;⑦查询除已还的书以外,目前借了5本或以上图书的读者编号和姓名;⑧查询书库中除借出的图书外,现存的图书书号、书名、现存数量;上述每项实验内容相应的实验步骤必须进行详细的记录,并将其整理后写在实验报告Transact-SQL语句输入区查询结果区数据库对象中。三、实验环境与实验准备工作实验环境:MicrosoftWindowsxp操作系统,MicrosoftSQLServer2008数据库管理系统标准版或企业版。实验准备工作:在开始本实验之前,请回顾教科书的相关内容(表的连接查询与嵌套查询语句的原理与语句格式)。四、实验报告要求1、根据实验内容和每一步骤实验的结果,按课程实验报告的撰写规范完成实验报告。报告可用手写或打印,尽可能打印,格式一定要规范。2、实验报告至少包括以下内容:①实验目的;②实验环境;③实验内容、步骤、结果和实验过程中出现的问题;④实验过程中主要使用的Transact-SQL语句。3、实验报告由每班学习委员统一收齐并按序号排号,于星期四下午送交至软件工程教研室。CreatetableBook(bnonvarchar(50)primarykey,bclassnvarchar(50)notnull,publishernvarchar(50)notnull,authornvarchar(50)notnull,bnamenvarchar(50),pricefloatnotnull,remarknvarchar(50))CreatetableReader(rnonvarchar(50)primarykey,rnamenvarchar(50)notnull,departmentnvarchar(50)notnull,sexvarchar(2)notnullcheck(sexin('男','女'))default'男',telephonenvarchar(50)notnull)CreatetableBorrow(bnonvarchar(50),rnonvarchar(50),bdatadatetime,primarykey(bno,rno),foreignkey(bno)referencesBook(bno),foreignkey(rno)referencesReader(rno))/**在“图书”表中,增加两个字段,分别为“数量”和“购买日期”和在“借阅”表中增加一个“还书日期”字段*/AltertableReaderaddconstraintcons_sex_chkcheck(sexin('男','女'))AltertableBookaddnumintnotnullAltertableBookadddatedatetimenotnullAltertableBorrowaddBack_datedatetimenotnullinsertintoBook(bno,bclass,publisher,author,bname,price,remark,num,date)values('0001','计算机','清华大学出版社','严蔚敏','数据结构','15.00','','10','1999-05-08')insertintoBook(bno,bclass,publisher,author,bname,price,remark,num,date)values('0002','计算机','清华大学出版社','单建魁','数据库系统实验指导','15','','30','2000-03-01')insertintoBook(bno,bclass,publisher,author,bname,price,remark,num,date)values('0003','环境','南京大学出版社','王小容','环境化学','32.00','','20','2000-06-09')insertintoBook(bno,bclass,publisher,author,bname,price,remark,num,date)values('0004','环境','清华大学出版社','何强','环境学导论','35.00','','20','2000-06-12')insertintoBook(bno,bclass,publisher,author,bname,price,remark,num,date)values('0005','计算机','电子工业出版社','傅清祥','算法与数据结构','36.70','','10','2000-07-15')insertintoBook(bno,bclass,publisher,author,bname,price,remark,num,date)values('0006','计算机','清华大学出版社','蔡自兴','人工智能及其应用','28.00','','10','2000-09-17')insertintoReader(rno,rname,department,sex,telephone)values('0001','张红','电气学院','女','01032324565')insertintoReader(rno,rname,department,sex,telephone)values('0002','杨小鹏','信息学院','男','01032333667')insertintoReader(rno,rname,department,sex,telephone)values('0003','王俊','信息学院','男','01043546789')insertintoReader(rno,rname,department,sex,telephone)values('0004','刘建','建筑学院','男','01023242526')insertintoBorrow(bno,rno,bdata,Back_date)values('0001','0002','2001-9-2','2001-10-1')insertintoBorrow(bno,rno,bdata,Back_date)values('0002','0002','2001-9-12','2001-10-11')insertintoBorrow(bno,rno,bdata,Back_date)values('0006','0002','2002-1-12','2002-2-1')insertintoBorrow(bno,rno,bdata,Back_date)values('0003','0001','2001-7-10','2001-8-7')insertintoBorrow(bno,rno,bdata,Back_date)values('0004','0001','2001-7-2','2001-7-22')insertintoBorrow(bno,rno,bdata,Back_date)values('0005','0001','2001-9-15','2001-9-15')insertintoBorrow(bno,rno,bdata,Back_date)values('0002','0003','2001-10-15','2001-11-1')insertintoBorrow(bno,rno,bdata,Back_date)values('0006','0003','2002-2-10','2002-2-20')insertintoBorrow(bno,rno,bdata,Back_date)values('0003','0004','2001-8-17','2001-8-29')insertintoBorrow(bno,rno,bdata,Back_date)values('0004','0004','2001-7-25','2001-8-15')/*查询借阅了类别为“环境”类图书的所有读者编号、姓名及单位;*//*selectDISTINCTReader.rno,rname,departmentfromReader,Book,BorrowwhereBook.bno=Borrow.bnoandReader.rno=Borrow.rnoandbclass='环境'*//*查询借阅过图书的读者编号、姓名及单位;*//*selectDISTINCTReader.rno,rname,departmentfromReader,BorrowwhereBorrow.rno=Reader.rno*//*查询姓名为“李明”的读者目前借阅的图书书号和书名;*//*selectDISTINCTBook.bno,bnamefromBook,Borrow,ReaderwhereBook.bno=Borrow.bnoandBorrow.rno=Reader.rnoandrname='李明'*//*sele