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

上传人:卢** 文档编号:117662691 上传时间:2022-07-09 格式:DOC 页数:6 大小:18KB
收藏 版权申诉 举报 下载
数据库管理系统中的模糊查询技术_第1页
第1页 / 共6页
数据库管理系统中的模糊查询技术_第2页
第2页 / 共6页
数据库管理系统中的模糊查询技术_第3页
第3页 / 共6页
资源描述:

《数据库管理系统中的模糊查询技术》由会员分享,可在线阅读,更多相关《数据库管理系统中的模糊查询技术(6页珍藏版)》请在装配图网上搜索。

1、数据库办理体系中的模糊查询技能内容提要重要先容在数据库办理体系中实现模糊查询的要领与本领,提供了能实现真正模糊查询的二个通用函数的源步伐,特殊是先容了布局化查询语言sql中鲜为人知的通配符的利用要领。关键词fxpr模糊查询selet-sql通配符在数据库办理体系中,查询是一个很紧张的内容。然而,在多数环境下人们不克不及正确知道作为查询条件的字段内容,如:某字段内容为“涪陵师范高等专科学校,查询者大概只知道其简称“涪陵师专或“涪师专,这时,为包管能查到满意条件的数据记载,只能举行模糊查询。下面从编程的角度谈谈在fxpr2.5b中,实现模糊查询的要领。一、简朴的模糊查询要领利用比力操纵符“=举行模

2、糊查询。先把setexat的设置置为ff,这时,“=用于两个字符表达式之间作比力,其规矩是:“=右边的字符逐个与“=左边雷同位置的字符举行比力,只要碰到此中一个字符不相称,大概“=右边的字符表达式竣事,比力操纵就竣事。以是,ab=ab,ab=ab,ab_=ab,ab=的比力结果均为逻辑真(.t.)。可见,这种要领的模糊性是不克不及令人满意的。利用“$举行包罗比力,其模糊查询的结果就比用“=时好得多。这种要领是在“$右边的字符表达式中查寻“$左边的字符表达式,假设寻到返回逻辑真(.t.),不然返回逻辑假(.f.)。用这种要领只要“$左边的字符表达式的每一个字符在“$右边的字符表达式中存在且位置不

3、中断,查寻就能乐成,然而对付诸如前面提到的“涪陵师专或“涪师专之类的简称,其查寻结果为逻辑假(.f.)。由此可见,直接利用“=和“$举行比力操纵是不克不及太“模糊的。二、查询条件为缩略语或简称的模糊查询要领缩略语或简称在地名、单元名称中利用非常普及。通常,缩略语或简称是由全称中的某些摆列位置不一连的字符构成的,因此,通过设置差异长度的字符串举行比力的规矩,大概利用包罗比力符“$,是不克不及对缩略语或简称举行模糊查询的。这时可编写一通用的自界说函数,将用户输入的查询条件字符串2与字符型字段变量字符串1举行逐字比力,假设字符串2是字符串1的缩略语或简称,那么返回逻辑真(.t.)不然返回逻辑假(.f

4、.),从而实现模糊查询。下面将作者所编写的自界说函数先容给读者,以供参考。方案头脑:此函数必需是一个通用函数。为此,实行时可先担当二个参数字符串1和字符串2。从字符串2的左边开始取其第一、二个字符x1,用at()函数测试x1在字符串1中的位置s1,假设s1不为0,就将字符串1中包罗x1以及左边部门的字符截掉,并取字符串2中的第三、四个字符x2,用at()函数测试x2在字符串1的剩余部门中的位置s2,假设s2不为0,就将字符串1的剩余部门中包罗x2以及左边部门的字符截掉,直到将字符串2中的字符取完并在字符串1中测试完为止,末了本函数返回逻辑真.t.。在这个历程中只要有一次测试不乐成即sn=0,那

5、么退出本函数并返回逻辑假.f.。由于一个汉字占二个asii字符,以是每次取二个相邻字符举行测试让zfbj.prg中的k=2。如许做,一是可以淘汰测试比力的次数,进步步伐运行速率。二是当字符串2中含有数字、字母等半角字符时,可以淘汰满意条件的记载数量,进步查询的掷中率。然而,假设查询条件中含有英文缩写,那么每次只能取一个asii字符举行测试让zfbj.prg中的k=1。本函数的源步伐如下:*步伐名称:zfbj.prg*步伐成效:比力字符串2是否为字符串1的缩略语*调用格式:zfbj(字符串1,字符串2)*通常字符串1是一个字符型字段变量*利用环境:fxpr2.5bparaeters.field,

6、.inprivateallif(paraeters()2);repty(alltri(.field);repty(alltri(.in)return.f.endififset(talk)=nsettalkff.talkstat=nendif.pstat=set(patible)setpatiblefxplusj=len(alltri(.in)k=2fri=1tjstepk.=substr(alltri(.in),i,k)z=at(.,alltri(.field)ifz0.field=substr(alltri(.field),z+k)fhz=.t.elsefhz=.f.exitendifend

7、frif.talkstat=nsettalknendifif.pstat=nsetpatiblenendifreturnfhz利用举例:设内存变量.field,其值为用户输入的用户名称的简称,如“涪师专,如今要在ktjbk.dbf中查询用户名称字段名为“涪陵师范高等专科学校,或为“涪陵师专,或为“涪师专的全部记载,可以先将满意条件的记载拷贝到一暂时数据库tep.dbf中,然后再欣赏,欣赏完毕删除暂时数据库tep.dbf。其步伐如下:.field=涪师专selet0usektjbkpyttep.dbffrzfbj(用户名称,.field)selet0usetepbrseneditusedelet

8、efiletep.dbfseletktjbkuse通过上面先容的自界说函数实现了真正的模糊查询,然而令人遗憾的是它的速率表示总使人感触美中不敷。幸幸亏fxpr中引入了布局化查询语言selet-sql。三、利用fxpr中selet-sql语句的模糊查询要领布局化查询语言sql是fxpr中值得自满的特色之一。利用sql的selet语句可以非常便利、极其快速地举行非常庞大的查询操纵。特殊值得保举的是elet-sql语句中的here参数支持通配符“%百分标记和“_下划线标记,因此,对付查询条件为缩略语或简称的环境,可以非常简朴地实现真正的模糊查询。这里,百分标记“%代表0个或0个以上的恣意字符,下划线

9、标记“_代表1个恣意字符,它们只能与运算符like搭配利用。利用举例:设内存变量.field,其值为用户输入的用户名称的简称,如“涪师专,如今要在ktjbk.dbf中查询用户名称字段名为“涪陵师范高等专科学校,或为“涪陵师专,或为“涪师专的全部记载,可以用下面的一段步伐实现:.field=涪师专_xtj=%fri=1tlen(alltri(.field)step2_xtj=_xtj+substr(alltri(.field),i,2)+%endfrselet*;frktjbk;herektjbk.用户名称like(_xtj);intursrtep步伐说明:本步伐运行时,先将.field=涪师专中插入四个通配符“%,得到_xtj=%涪%师%专%,然后利用sql的selet语句,从数据库ktjbk.dbf中选出字段变量“用户名称切合“%涪%师%专%格式的全部记载,输出到一个假造暂时数据库tep.dbf中。利用fxpr中的布局化查询语言selet-sql可以编写出很标致的通用查询步伐。笔者在数据库办理体系的开拓理论中,曾用fxpr的屏幕天生器编写过一通用查询步伐,其通用性和实行速率表示都非常好本人愿抛砖引玉,奉献给有爱好的?软件天下?读者,见附录,限于篇幅这里就不详细先容了。附录:?一个真正的通用查询步伐?见磁盘文件tyx.txt(纯文本文件)或tyx.d(rd97文档)参考文献:

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!