当前位置:首页 > 综合练习答案
综合练习
一、实训目的
1. 掌握SQL数据定义语句的使用; 2. 掌握SQL数据查询语句的使用; 3. 掌握SQL数据更新语句的使用;
4. 掌握使用SQL创建视图、查询视图和撤消视图的技能与方法。
二、实训要求
1. 认真独立完成实训内容;
2. 实训前做好上机实训的准备,针对实训内容,认真复习与本次实训有关的知识,完成实
训内容的预习准备工作;
3. 实训后做好实训总结(包括实训过程中遇到的问题及其解决方法、实训心得体会等)。
三、实训项目
按下列要求,完成对应的SQL语句,每个SQL语句前加上题号,最后将所有的SQL语句保存到一个“t学号.sql”的文档中。(如“t 02010101.sql”) 1. 建立一个图书管理数据库,数据库名为“图书管理”。
2. 在上述数据库中创建读者信息表、图书信息表、借阅表等,具体表结构如下:(注:要
求表字段取英文名) 读者信息表:(readerinfo)
列名(英文名) reader_id reader_name sex age unit 列名(中文名) 身份证号 姓名 性别 年龄 工作单位 数据类型 char char char tinyint char 长度 18 10 2 60 允许空值 ? ? ? ? ? 说明 主键 默认“男” 图书信息表:(bookinfo)
列名(英文名) 列名(中文名) 数据类型 book_id book_name publish pubdate authors price pages 书号 书名 出版社 出版日期 编著 单价 页数 char char char datetime char money int 长度 10 60 60 40 允许空值 ? ? ? ? ? ? ? 说明 主键 借阅表:(borrowinfo)
列名(英文名) 列名(中文名) 数据类型 reader_id book_id 身份证号 书号 char char 长度 18 10 允许空值 ? ? 说明 主键 borrowdate returndate 借阅日期 归还日期 datetime datetime ? ? 2. 用SQL语句在读者信息表中插入记录: 身份证号 33060219661202004 33051219681008001 姓名 王小玲 李小华 性别 女 男 年龄 39 37 工作单位 光明集团公司 金色年华摄影店 3. 用SQL语句在图书信息表中插入记录: 书号 Tp10010 Tp10020 书名 Java程序设计 数据库原理与应用 出版社 高教 高教 出版日期 2003-7-5 2001-5-9 编著 李书 李红 单价 35 29.2 页数 210 230 4. 查询年龄在18——25岁之间的读者信息(包括18和25岁)。
Select * From readerinfo
Where age between 18-25
5. 查询借阅了有关“Java”的图书的读者身份证号、姓名及所借图书书号、借阅日期和归
还日期。
Select readerid, readername, bookid, borrowdate, returndate
From readerinfo as r, borrowinfo as b, bookinfo as bk Where r.readerid=b.readerid and b.bookid=bk.bookid And bookname like ‘%java%’
6. 查询高教出版社出版的图书的平均价格。
Select avg(price) From bookinfo
Where publisher=’ 高教出版社’
Select publisher, avg(price) From bookinfo Group by publisher
7. 查询出版5本以上图书的图书信息。
Select publisher, count(bookid) From bookinfo Group by publisher Having count(bookid)>=5
8. 创建视图myview,包括所有图书书号、书名及相应借阅读者的身份证号、姓名和借阅
日期、归还日期。 Create view myview As
Select bookid, bookname,readerid,readername,borrowdate, returndate
From readerinfo as r, borrowinfo as b, bookinfo as bk Where r.readerid=b.readerid and b.bookid=bk.bookid
9. 将在1995年12月30日前出版的图书的单价下降5%。 Update bookinfo Set price=price*0.95 Where pubdate<’1995-12-30’
10. 删除1990年1月1日前的图书信息,并删除其相应的借阅信息。(分别用SQL语句实
现)
Delete from bookinfo Where pubdate<’1990-1-1’
Delete from borrowinfo
Where bookid in (select bookid from bookinfo Where pubdate<’1990-1-1’) 附加:
1. 查询图书借阅已经30天以上,但仍未归还的图书书号、书名、读者身份证号和姓名。 Select bookid, bookname, readerid, readername
From readerinfo as r, borrowinfo as b, bookinfo as bk
Where r.readerid=b.readerid and b.bookid=bk.bookid and datediff(dd, b.borrowdate, getdate())>=30
2. 查询图书身份证号、书号、借阅日期、归还日期和罚款金额(罚款金额的计算方法为:
过30天以后,延一天罚0.1元)。
四、实训总结
总结实训情况,实训过程中遇到的疑难问题、实训心得体会等
共分享92篇相关文档