APP下载

智慧旅商管理系统信息检索功能设计

2019-09-10苏玉燕

现代信息科技 2019年17期
关键词:信息检索管理系统

摘  要:智慧旅商平台为师生提供校园资讯、信息查询、在线办公、生活服务等校园全方位信息服务。本文以“智慧旅商移动APP”为信息检索的平台,围绕“分组”展开数据查询,以解决宿舍的用电查询问题。在编写数据查询的T-SQL语句过程中,对“HAVING”子句的条件筛选和“WHERE”子句的条件筛选进行比较,总结出这两种子句的条件筛选所使用的环境。

关键词:管理系统;信息检索;数据查询

中图分类号:TP315     文献标识码:A 文章编号:2096-4706(2019)17-0012-03

Abstract:The Intelligent Travel Business Platform provides all-round campus information services for teachers and students,such as campus information,information inquiry,online office,life services and so on. This paper takes “smart traveler mobile APP” as the information retrieval platform,launches data query around “grouping” to solve dormitory power query. In the process of writing T-SQL statement for data query,comparing the conditional filter of “HAVING” clause with the conditional filter of “WHERE” clause,get the summary of working environment for both of conditional filter clause.

Keywords:management system;information retrieval;data query

0  引  言

智慧旅商平臺为师生提供校园资讯、信息查询、在线办公、生活服务等校园全方位信息服务。本文以“智慧旅商移动APP”为信息检索的平台,针对智慧旅商平台中的“用电查询”模块,根据前台的人机界面和后台的数据表结构,围绕“分组”展开数据查询,写出分组的T-SQL语句。在编写数据查询的T-SQL语句过程中,对T-SQL语句中的HAVING子句的条件筛选和WHERE子句的条件筛选进行比较,总结出这两种子句的区别。作为计算机编程人员,面对程序,需要进行一次次的试错、纠错、归纳总结,不断完善界面中的功能。

1  智慧旅商平台简介

智慧旅商是常州旅游商贸高等职业技术学校定制开发的校园应用APP,其升级了教育教学管理信息化水平,打造全终端师生互动渠道,充分适应网络信息化趋势下师生行为方式、学习方式、生活方式的变化,拓宽了师生互动的渠道,增强了师生互动有效性。

“智慧旅商移动APP”目前整合了校园网站的相关内容,集成了OA移动办公、一卡通在线查询、工资查询、场地预约、校内黄页、旅商社团、图书查询等功能,后期将增加教务学工模块、不仅可以实时查询教务学工信息,还可以通过“移动课堂”功能,以课堂为单位实现教师与学生的双向互动,此外,学生还可以在“学业预警”功能中了解掌握自己的学业研读情况。而“消息推送”功能更是可以实现信息在师生之间“直达”推送,减少了传统信息发布模式中信息量减损的问题。

2  通过分组实现数据查询

本文以“智慧旅商移动APP”为信息检索的平台,通过聚合函数[1]COUNT()统计全校住宿生人数,聚合函数SUM()统计宿舍的用电总量。常用的聚合函数如表1所示。

我们以“智慧旅商移动APP”中用电查询的界面为例,如图1所示。

在后台数据库中,房间用电情况数据表结构如表2所示。

我们来探究如何实现查询每个房间的用电总量和电费总额。我们可以通过上面的聚合函数以及数据查询中的WHERE子句来实现。查询语句如下:

SELECTSUM(yongdianliang)AS'用电总量',SUM(yong dianfei)AS'电费总额'

FROMfangjianyongdian_info

WHEREfangjian='15101'

SELECTSUM(yongdianliang)AS'用电总量',SUM(yong dianfei)AS'电费总额'

FROMfangjianyongdian_info

WHEREfangjian='15102'

SELECTSUM(yongdianliang)AS'用电总量’,SUM(yong dianfei)AS'电费总额'

FROMfangjianyongdian_info

WHEREfangjian='19210'

……

依次类推,能够查询出每个房间的用电总量和电费总额。其实我们可以通过更加便捷有效的方式去实现,那就是分组[2]。通过分组实现,查询语句如下:

SELECTfangjian AS'房间',SUM(yongdianliang)AS '用电总量',SUM(yongdianfei)AS'电费总额'

FROMfangjianyongdian_info

GROUPBYfangjian

查询的结果如图2所示。

对比上述的两种方式(WHERE子句和分组GROUP BY子句)来实现查询每个房间的用电总量和用电总额,我们可以发现,使用分组GROUP BY子句[3]的好处是缩短代码,提高代码的执行效率,使查询速度更快。使用分组,查询结果更加清晰、一目了然。

在使用分组实现数据查询的时候,通常会出现以下两种错误:

第一种:

SELECT fangjian,shijian,SUM(yongdianliang)AS'用电总量',SUM(yongdianfei)AS’电费总额'

FROMfangjianyongdian_info

GROUPBYfangjian

错误消息:消息8120,级别16,状态1,第1行

选择列表中的列'fangjianyongdian_info.shijian'无效,因为该列没有包含在聚合函数或GROUP BY子句中。

解决方案:因为shijian不是分组列,分组列是fangjian。去掉shijian列。

正确的T-SQL语句:

SELECTfangjian,SUM(yongdianliang)AS'用电总量',SUM(yongdianfei)AS'电费总额'

FROMfangjianyongdian_info

GROUPBYfangjian

结论1:当使用GROUP BY子句进行分组时,SELECT 语句的列表中所选择的列一定是GROUP BY子句后面的分组依据列或聚合函数。

第二种:

SELECTfangjianAS'房间',SUM(yongdianliang)AS'用电总量',SUM(yongdianfei)AS'电费总额’

FROMfangjianyongdian_info

GROUPBYfangjian

WHERE fangjian='15101'

错误消息:消息156,级别15,状态1,第4行

关键字'WHERE'附件有语法错误。

解决方案:我们使用分组GROUP BY子句,对分组后面的列进行条件筛选,我们只能用HAVING子句。如果想用WHERE子句,GROUP BY子句只能放在WHERE子句的后面。

正确的T-SQL语句:

SELECTfangjianAS'房间',SUM(yongdianliang)AS'用电总量',SUM(yongdianfei)AS'电费总额'

FROMfangjianyongdian_info

GROUPBYfangjian

HAVING fangjian='15101'

或者:

SELECTfangjianAS'房间',SUM(yongdianliang)AS'用电总量',SUM(yongdianfei)AS'电费总额'

FROMfangjianyongdian_info

WHERE fangjian='15101'

GROUPBYfangjian

结论2:对分组后的结果进行筛选,我们用HAVING。当SELECT语句中包含有WHERE子句的时候,GROUP BY子句只能放在WHERE子句的后面。

3  HAVING子句条件筛选和WHERE子句的条件筛选的比较

本论文中主要围绕通过分组来实现查询每个房间的用电总量和电费总额,在这个过程中我们发现对分组后的结果进行筛选,可以用HAVING子句筛选出15号楼101房间的用电总量、电费总额,也可以通过WHERE子句去实现15号楼101房间的用电总量、电费总额的查询。HAVING子句条件筛选和WHERE子句的条件筛选区别[3]主要表现在以下几点:

(1)HAVING和WHERE都是用来进行条件筛选[4]的。WHERE子句的作用是在对查询结果进行分组前,将不符合WHERE条件的行去掉,即在分组之前过滤数据,条件中不能包含聚组函数,使用WHERE条件显示特定的行。HAVING子句的作用是筛选满足条件的组,即在分组之后过滤数据,条件中经常包含聚组函数,可以使用HAVING条件显示特定的组,也可以使用多个分组标准进行分组。

(2)WHERE不能放在GROUP BY后面,HAVING是跟GROUP BY连在一起用的,放在GROUP BY后面,此时的作用相当于WHERE,WHERE后面的条件中不能有聚集函数,比如SUM(),AVG()等,而HAVING可以。

4  结  论

本文以“智慧旅商移动APP”为信息检索的平台,围绕“分组”展开数据查询,以解决智慧旅商中的宿舍用电查询问题。在探究的过程中,我们分析出HAVING子句条件筛选和WHERE子句的条件筛选的不同,主要是WHERE不能放在GROUP BY后面,HAVING是跟GROUP BY连在一起用的,放在GROUP BY后面,此时的作用相当于WHERE。WHERE后面的条件中不能有聚集函数,比如SUM(),AVG()等,而HAVING可以。WHERE和HAVING都是对查询结果的一种筛选,都是设定条件的语句。

作为计算机编程人员,对于人机界面,我们需要去分析人机界面实现的原理,用相应的编程语言去实现人机界面的功能。

参考文献:

[1] 张蒲生.数据库应用技术SQL Server2005基础篇 [M].北京:机械工业出版社,2008.

[2] 陈永强.SQL Server数据库企业应用系统开发 [M].北京:清华大学出版社,2005.

[3] 刘志成,宁云智.数据库系统原理与应用 [M].北京:机械工业出版,2010.

[4] 王永乐.SQL Server2008数据库项目教程 [M].北京:邮电大学出版社,2012.

作者简介:苏玉燕(1989-),女,汉族,江苏常州人,教师,助讲,硕士,研究方向:計算机。

猜你喜欢

信息检索管理系统
浅析开源情报信息检索与信息鉴别
基于单片机MCU的IPMI健康管理系统设计与实现
基于物联网的IT运维可视化管理系统设计与实现
档案管理系统的选择与分析
基于分布式数据库Cedar的高效工单管理系统设计与实现
对大学案理研讨课学生信息检索意识若干问题的思考
医学信息检索与利用的探讨
我国物流企业内部控制制度的问题及建议
空难事故跨媒体信息采集与检索方法的研究
中外档案网站信息检索功能比较研究