数据库的组合查询和统计查询实验
一、实验目的
熟练掌握SQL Server查询分析器的使用方法,加深对SQL和Transact-SQL语言的查询语句的理解。熟练掌握数据查询中分组、统计、计算和组合的操作方法。
二、实验内容
1.分组查询实验。该实验包括分组条件表达、选择组条件的表达方法。 2.使用函数查询的实验。该实验包括统计实验和分组统计函数的使用方法。 3.组合查询实验。
4.计算和分组计算查询的实验。 三、实验步骤
在图书借阅库中实现其查询操作。
⑴查找这样的图书类别:要求类别中最高的图书定价不低于全部按类别分组的图书平均定价的2倍。
⑵求机械工业出版社出版的各类图书的平均定价,用GROUPBY表示。 ⑶列出计算机类图书的书号、名称及价格,最后求出册数和总价格。 ⑷列出计算机类图书的书号、名称及价格,并求出各出版社这类书的总价格,最后求出全部册数和总价格。
⑸查询计算机类和机械工业出版社出版的图书。 四、实验结果与分析 1.图书表:
编号 类别 出版社 作者 名称 定价 册数 总价格 001 计算机 南航 比尔 数据库 100 2 200 002 文学 北大 林徽因 你就是那人间的四月天 20 5 100 003 计算机 机械工业 陈艳 机械设计基础 35 1 35 004 数学 机械工业 柯西 柯西不等式 65 10 650 005 计算机 清华 桑科 C语言 15 2 30 006 小说 机械工业 鲁迅 狂人日记 23 1 23 007 语言 人民 李阳 疯狂英语 41 2 82
⑴ SELECT 类别
FROM 图书
GROUP BY 类别
HAVING MAX(定价)>= AVG(定价)*2; 结果:类别
计算机
⑵ SELECT 类别,AVG(定价) FROM 图书
WHERE 出版社='机械工业' GROUP BY 类别;
结果: 类别
计算机 35.0 数学 65.0
小说 23.0 ⑶ SELECT 编号,名称,定价 FROM 图书
WHERE 类别='计算机'; UNION
SELECT SUM(册数) ,SUM(总价) FROM 图书
WHERE 类别='计算机'; 结果:编号 名称 定价 册数 总价 001 数据库 100.0 003 机械设计基础 35.0 5 265.0 005 C语言 15.0 ⑷ SELECT 编号,名称,定价 FROM 图书
WHERE 类别='计算机'; UNION
SELECT 出版社,SUM(总价) FROM 图书
WHERE 类别='计算机'
GROUP BY 出版社; UNION
SELECT SUM(册数) ,SUM(总价) FROM 图书
WHERE 类别='计算机'; 结果:编号 名称 定价 出版社 册数 总价 001 数据库 100.0 机械工业 35.0 003 机械设计基础 35.0 南航 200.0 5 265.0 005 C语言 15.0 清华 30.0 ⑸ SELECT* FROM 图书
WHERE 出版社='机械工业'OR 类别='计算机'; 结果:
编号 类别 出版社 作者 名称 定价 册数 总价
001 计算机 南航 比尔 数据库 100.0 2 200.0 003 计算机 机械工业 陈艳 机械设计基础 35.0 1 35.0 004 数学 机械工业 柯西 柯西不等式 65.0 10 650.0 005 计算机 清华 桑科 C语言 15.0 2 30.0 006 小说 机械工业 鲁迅 狂人日记 23.0 1 23.0
2.之前的几个实验在课本上都有相应的例题与解答,因此在操作时很简单,而这次的实验内容是全新的,只能利用学过的知识自己编写查询语句,没有参考,一旦出错改起来比较困难,不过通过同学之间互相检查,还是顺利完成了实验所有要求。
在数据库上机中主要是用到的SQL结构化查询语言,它是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统。可以帮我们做到面向数据库执行查询、取回数据、插入新的记录、更新数据库中的数据、删除记录、创建新数据库、新表和视图、设置表、存储过程和视图的权限,功能非常强大。通过上机练习让我比较容易的掌握理论知识的难点,以及一些平时不注意的问题,在上机练习的过程中需要对每个细节都要留心,这样才不至于出错,从而加深了细节问题的处理方法。在学习过程中也遇到了不少问题,积极询问老师,和同学共同商讨,查询资料把问题得以解决,培养了解决问题的能力。
数据库的学习是在学习与探索中度过的,短暂的课程时间的学习是结束了,但其中学到了许多知识,也有诸多的问题需要今后去解决,学习一门课程不是随随便便的学完,在今后还要自己强化各方面的知识,真正学以致用。通过这次的学习,我了解了数据库的概念与重要性,明白数据库的应用是广泛的,不可小觑,在今后应该再进行加强学习。 五、思考题
1.组合查询语句可以用几个分开的子查询代替,但是不能一次输出所有的结果,一次执行一个子查询,也就只能输出结果的一部分。用组合查询语句可以把几个子查询得到的结果一次性输出。
2.用GROUPBY子句后,只会对分组后的每一组中执行函数计算,不加GROUPBY是对所有的符合条件的结果进行函数计算。
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说教育文库数据库5在线全文阅读。
相关推荐: