多条件数据库查询的优化方法_第1页
多条件数据库查询的优化方法_第2页
多条件数据库查询的优化方法_第3页
多条件数据库查询的优化方法_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

在数据库编程中,管理人员需要经常从数据库中查询数据。当查询条件为确定时,我们可以明确用的SQL语句来实现,但是当查询条件为多个条件的动态组合时,查询语句会由于分支太多及IF语句的多重嵌套而变得相当复杂。在此,笔者提供了一种优化方法,运用本方法可以有效地减少查询语句的分支和数量以及IF条件语句的嵌套层数,从而提高程序的运行效率。下面我们以一个简单的例子来说明,假设有一个名为employee的表,现在我们要从其中查询数据,条件有三个,由用户动态选择,如图1所示:其中条件A、B、C之间是与的关系,A、B、C均为动态选择,可以取其中的一个、两个或三个,也可以一个都不选,当三个条件都不选择时则认为是无条件查询,按照通常的做法,判断方法如图2所示:

空空空l.select*fromemployee;2.select*fromemployeewhereAge=C3.select*fromemployeewhereSex=B;4.select*fromemployeewhereSex二BandAge二C;5.select*fromemployeewhereName二A;6.select*fromemployeewhereName=AandAge=C;7.select*fromemployeewhereName=AandSex=B语句了语句8非空空非空空非空空8.select*fromemployeewhereName=AandSex=BandAge=C;非空非空非空U语句语分别是空空空l.select*fromemployee;2.select*fromemployeewhereAge=C3.select*fromemployeewhereSex=B;4.select*fromemployeewhereSex二BandAge二C;5.select*fromemployeewhereName二A;6.select*fromemployeewhereName=AandAge=C;7.select*fromemployeewhereName=AandSex=B语句了语句8非空空非空空非空空8.select*fromemployeewhereName=AandSex=BandAge=C;非空非空非空U语句语分别是语句1这掏;最终的结果爲•8个,即有8条查询语句6Age=C空 I 非空Sckf=BSckf=BAge=CName=AStr_Result="whereAge=C"Str_Result=Str_Result+"andAge=C"endifendif最终的结果查询语句为:select*fromemployee+Str_Result。显然,这种方法减少了组合的分支和if语句的多重嵌套,从而提高了程序的效率。本方法的原理在于定义了一个单独的字符串来表示组合的结果,当该字符串经过条件A后其值为A的条件,经过条件B后其值则

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论