数据库管理系统中的模糊查询技术的论文

数据库管理系统中的模糊查询技术的论文

ID:9752214

大小:58.50 KB

页数:4页

时间:2018-05-07

数据库管理系统中的模糊查询技术的论文_第1页
数据库管理系统中的模糊查询技术的论文_第2页
数据库管理系统中的模糊查询技术的论文_第3页
数据库管理系统中的模糊查询技术的论文_第4页
资源描述:

《数据库管理系统中的模糊查询技术的论文》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、数据库管理系统中的模糊查询技术的论文内容提要主要介绍在数据库管理系统中实现模糊查询的方法与技巧,提供了能实现真正模糊查询的二个通用函数的源程序,特别是介绍了结构化查询语言sql中鲜为人知的通配符的使用方法。关键词foxpro模糊查询select-sql通配符在数据库管理系统中,查询是一个很重要的内容。然而,在多数情况下人们不能准确知道作为查询条件的字段内容,如:某字段内容为“涪陵师范高等专科学校”,查询者可能只知道其简称“涪陵师专”或“涪师专”,这时,为保证能查到满足条件的数据记录,只能进行模糊查询。下面从

2、编程的角度谈谈在foxpro2.5b中,实现模糊查询的方法。一、简单的模糊查询方法①利用比较操作符“=”进行模糊查询。先把setexact的设置置为off,这时,“=”用于两个字符表达式之间作比较,其规则是:“=”右边的字符逐个与“=”左边相同位置的字符进行比较,只要遇到其中一个字符不相等,或者“=”右边的字符表达式结束,比较操作就结束。所以,"abc"="abc","abc"="ab","ab_"="ab","ab"=""的比较结果均为逻辑真(.t.)。可见,这种方法的模糊性是不能令人满意的。②利用“$”

3、进行包含比较,其模糊查询的效果就比用“=”时好得多。这种方法是在“$”右边的字符表达式中查找“$”左边的字符表达式,若找到返回逻辑真(.t.),否则返回逻辑假(.f.)。用这种方法只要“$”左边的字符表达式的每一个字符在“$”右边的字符表达式中存在且位置不间断,查找就能成功,然而对于诸如前面提到的“涪陵师专”或“涪师专”之类的简称,其查找结果为逻辑假(.f.)。.由此可见,直接利用“=”和“$”进行比较操作是不能太“模糊”的。二、查询条件为缩略语或简称的模糊查询方法缩略语或简称在地名、单位名称中使用非常广泛

4、。通常,缩略语或简称是由全称中的某些排列位置不连续的字符组成的,因此,通过设置不同长度的字符串进行比较的规则,或者利用包含比较符“$”,是不能对缩略语或简称进行模糊查询的。这时可编写一通用的自定义函数,将用户输入的查询条件(<字符串2>)与字符型字段变量(<字符串1>)进行逐字比较,如果<字符串2>是<字符串1>的缩略语或简称,则返回逻辑真(.t.)否则返回逻辑假(.f.),从而实现模糊查询。下面将作者所编写的自定义函数介绍给读者,以供参考。设计思想:此函数必

5、须是一个通用函数。为此,执行时可先接受二个参数──<字符串1>和<字符串2>。从<字符串2>的左边开始取其第一、二个字符x1,用at()函数测试x1在<字符串1>中的位置s1,如果s1不为0,就将<字符串1>中包含x1以及左边部分的字符截掉,并取<字符串2>中的第三、四个字符x2,用at()函数测试x2在<字符串1>的剩余部分中的位置s2,若s2不为0,就将<字符串1>的剩余部分中包含x2以及左边部分的字符截掉…

6、…,直到将<字符串2>中的字符取完并在<字符串1>中测试完为止,最后本函数返回逻辑真(.t.)。在这个过程中只要有一次测试不成功(即sn=0),则退出本函数并返回逻辑假(.f.)。因为一个汉字占二个ascii字符,所以每次取二个相邻字符进行测试(让zfbj.prg中的k=2)。这样做,一是可以减少测试比较的次数,提高程序运行速度。二是当<字符串2>中含有数字、字母等半角字符时,可以减少满足条件的记录数目,提高查询的命中率。然而,若查询条件中含有英文缩写,则每次只能取一个a

7、scii字符进行测试(让zfbj.prg中的k=1)。本函数的源程序如下:*程序名称:zfbj.prg*程序功能:比较<字符串2>是否为<字符串1>的缩略语*调用格式:zfbj(<字符串1>,<字符串2>)*通常<字符串1>是一个字符型字段变量*返回值:逻辑值.t.或.f.*使用环境:foxpro2.5bparametersm.field,m.inmcprivateallif(parameters()<2);orempty(alltrim(m

8、.field));orempty(alltrim(m.inmc))return.f.endififset("talk")="on"settalkoffm.talkstat="on"endifm.pstat=set("patible")setpatiblefoxplusj=len(alltrim(m.inmc))k=2fori=1tojstepkm.mc=substr(alltrim(m.inmc),i,k)mc.

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。