数据库实验7报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一.实验目的
使学生熟练掌握数据查询中分组、统计、计算和组合的操作方法,并加深对Transact-SQL语言的查询语句的理解。
二.实验软件环境
Microsoft SQL Server 2000上的查询分析器
三.实验内容
要求完成以下查询要求:
1)查询计算机类和机械工业出版社出版的图书。
2)查询藏书在10本以上的书(书名、作者、出版社、年份)。
3)查询“数据库系统原理教程,王珊,清华大学出版社出版”还有多少本。
4)查询最近两年(2006、2007年)都未被借过的书。
5)查询藏书种数、总册数、最高价、最低价。
6)查询哪些出版社的总藏书超过100种。
7)查询目前已借出多少册书。
8)查询这样的图书类别:要求该类别中最高的图书定价不低于该类别的图书平均定价的2倍。9)查询“机械工业出版社”的各类图书的平均定价。
10)查询计算机类图书的书号、名称及价格,并计算册数和总价格。
四.实验的结果及分析
根据实验内容,利用SQL语句在查询分析器中输入如下代码并输出相应结果,
/*查询计算机类和机械工业出版社出版的图书*/
use Labery_3111001381
select * from book where category='计算机'
union
select * from book where press='机械工业出版社'
/*查询藏书在10本以上的书(书名、作者、出版社、年份)*/
use Labery_3111001381
select title,author,press,book_year from book
where book_total>10
/*查询"数据库系统原理与应用.蔡延光.机械工业出版社"*/
use Labery_3111001381
select book_total from book
where title='数据库原理与应用'
and author='蔡延光'
and press='机械工业出版社'
/*查询最近两年(2006、2007)都未被借过的书*/
use Labery_3111001381
select book.* from book,borrow
where borrow.bno=book.bno and year(borrow_date)<>year(getdate()) and year(borrow_date)<>year(getdate()-1)
union
select * from book where bno not in (select bno from borrow)
/*查询藏书总数、总册数、最高价、最低价*/
use Labery_3111001381
select count(category) as count_category,
sum(book_total) as book_total,
max(price) as max_price,
min(price) as min_price
from book
/*查询哪些出版社的总藏书超过100本*/
use Labery_3111001381
select press from book
group by press
having sum(book_total)>100
/*查询目前已借出多少册书*/
use Labery_3111001381
select count(bno) as current_borrow from book
/*查询这样的图书类别:要求该类别中最高的图书定价低于该类别的图书平均定价的2倍*/ use Labery_3111001381
select category from book group by category
having max(price)<=avg(price)*2
/*查询“机械工业出版社”的各类图书的平均定价*/
use Labery_3111001381
select category,avg(price) as avg_pricce from book
where press='机械工业出版社'
group by category
/*查询计算机类图书的书号、名称及价格,并计算册数和总价格*/
use Labery_3111001381
select bno,title,price,book_total,price*book_total as price_total from book
where category='计算机'
五. 实验心得体会
在大数据量的情况下在临时表中保持数据的子集,以在随后的连接中使用,这样能大大改善性能,如果访问很频繁,加载就会加重,tempdb的性能就会对整个DB产生重要的影响。而SELECT查询语句则可能要重复查询工作。而视图虽然使操作简单,安全性高,但由于视图是虚拟的表,在使用包括视图引用的SQL语句时,除了执行所键入的SQL语句中的查询或更新之外,还要告诉DBMS执行定义视图的查询,这就影响了查询的效率。