数据库管理系统中查询技术.docxVIP

  1. 1、本文档共8页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
数据库管理系统中查询技术 内容提要主要介绍在数据库管理系统 中实现模糊查询的方法与技巧,提供了能实 现真正模糊查询的二个通用函数的源程序, 特别是介绍了结构化查询语言 SQL中鲜为人 知的通配符的使用方法。 关键词FoxPro模糊查询SELECT-SQ通 配符 在数据库管理系统中,查询是一个很重 要的内容。然而,在多数情况下人们不能准 确知道作为查询条件的字段内容,如:某字 段内容为“涪陵师范高等专科学校”, 查询 者可能只知道其简称“涪陵师专”或“涪 师专”,这时,为保证能查到满足条件的数 据记录,只能进行模糊查询。下面从编程的 角度谈谈在中,实现模糊查询的方法。 一、简单的模糊查询方法 ①利用比较操作符“=”进行模糊查询。 先把SETEXAC的设置置为 OFF这时,"=” 用于两个字符表达式之间作比较, 其规则是: "=”右边的字符逐个与"=”左边相同位 置的字符进行比较,只要遇到其中一个字符 不相等,或者“=”右边的字符表达式结束, 比较操作就结束。所以,”abc"="abc”, "abc"="ab" , "ab_"="ab” , "ab"=""的比较 结果均为逻辑真。可见,这种方法的模糊性 是不能令人满意的。 ②利用“$”进行包含比较,其模糊查 询的效果就比用“=”时好得多。这种方法 是在“$”右边的字符表达式中查找“ $” 左边的字符表达式,若找到返回逻辑真,否 则返回逻辑假。用这种方法只要“ $”左边 的字符表达式的每一个字符在“ $"右边的 字符表达式中存在且位置不间断, 查找就能 成功,然而对于诸如前面提到的“涪陵师专” 或“涪师专”之类的简称, 其查找结果为逻 辑假。 由此可见,直接利用“=”和“ $”进行 比较操作是不能太“模糊”的。 二、查询条件为缩略语或简称的模糊查 询方法 缩略语或简称在地名、单位名称中使用 非常广¥之。通常,缩略语或简称是由全称中 的某些排列位置不连续的字符组成的, 因此, 通过设置不同长度的字符串进行比较的规 则,或者利用包含比较符“ $”,是不能对 缩略语或简称进行模糊查询的。 这时可编写 一通用的自定义函数,将用户输入的查询条 件与字符型字段变量进行逐字比较, 如果是 的缩略语或简称,则返回逻辑真否则返回逻 辑假,从而实现模糊查询。 下面将作者所编写的自定义函数介绍 给读者,以供参考。 设计思想:此函数必须是一个通用函数。 为此,执行时可先接受二个参数 和。从 的左边开始取其第 一、二个字符X1,用AT函数测试X1在 中的位置S1,如果S1不为0,就将中包含 X1以及左边部分的字符截掉,并取中的第 三、四个字符X2,用AT函数测试X2在 的剩余部分中的位置 S2,若S2不为0,就 将的剩余部分中包含X2以及左边部分的字 符截掉 ,直到将中的字符取完并在中测 试完为止,最后本函数返回逻辑真。在这个 过程中只要有一次测试不成功,则退出本函 数并返回逻辑假。因为一个汉字占二个 ASCII字符,所以每次取二个相邻字符进行 测试。这样做,一是可以减少测试比较的次 数,提局程序运行速度。二是当中含有数字、 字母等半角字符时,可以减少满足条件的记 录数目,提高查询的命中率。然而,若查询 条件中含有英文缩写,则每次只能取一个 ASCII字符进行测试。 本函数的源程序如下: *程序名称: *程序功能:比较是否为的缩略语 *调用格式:ZFBJ *通常是一个字符型字段变量 *返回值:逻辑值.T.或.F. *使用环境: , PRIVATEALL IF0 =SUBSTR,MCWZ+K) fhz=.T. ELSE fhz=.F. EXIT ENDIF ENDFOR ="ON" SETTALKON ENDIF pstat="ON" SETCOMPATIBLEON ENDIF RETURNfhz 使用举例:设内存变量,其值为用户输 入的用户名称的简称,如“涪师专”,现在 要在中查询用户名称为“涪陵师范高等专 科学校”,或为“涪陵师专”,或为“涪师 专”的全部记录,可以先将满足条件的记录 拷贝到一临时数据库中,然后再浏览,浏览 完毕删除临时数据库。其程序如下: ="涪师专” SELECT0 USEKTJBK SELECT0 USETEMP BROWSENOEDIT USE DELETEFILE SELECTKTJBK USE 通过上面介绍的自定义函数实现了真 正的模糊查询,然而令人遗憾的是它的速度 表现总使人感到美中不足。幸好在 FoxPro 中引入了结构化查询语言 SELECT-SQL 三、利用FoxPro中SELECT-SQ踏句的 模糊查询方法 结构化查询语言 SQL是FoxPro中值得 骄傲的特色之一。利用 SQL的SELECT吾句 可以非常方便、极其快速地进行十分复 杂的查询操作。特别值得推荐的是 E

文档评论(0)

wangxue1 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档