- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
模糊查询技术在企业数据库中实现
模糊查询技术在企业数据库中实现
[摘要] 数据库查询已成为当今社会各行业不可缺少的部分,而传统的数据库并不能处理模糊现象,本文是在SQL的Northwind数据库中为employees表建立新的存储过程以便在.net中按Lastname进行模糊查询,从而克服了传统查询的局限性。
[关键词] SQL 存储过程 模糊查询
一、引言
随着信息时代的到来和Internet技术的发展,数据库查询已成为人们日常生活中不可缺少的部分。尤其是对于企业来说,数据库的精确查询显然不能满足它的各种查询要求,这会导致企业效率的不足。而现有查询技术主要是以传统数据库系统为基础,仅对精确数据进行访问和处理。然而在客观世界中,模糊概念和现象大量存在,也就有大量非理想化或模糊的查询操作。为了克服传统查询的局限性,需要提出一种更具“智能化”、能对模糊查询要求快速定位的新技术。本文只是从众多模糊查询中提出一种――利用存储过程实现模糊查询。
二、相关概念
1.模糊的概念
目前主流的数据库是关系型数据库,它是以布尔逻辑为基础的,所以对于一个查询条件,数据库中的一条记录要么满足要么不满足。
但是人类语言的一个很大特点就是具有模糊性、不确定性、不精确性,比如在数据库中查找“一个年轻的高个男子”,在这个条件中“年轻”和“高个”是模糊的概念;另外在许多情况下,用户对查询并不要求给出一个精确匹配的结果,只要求结果在一定程度上满足条件即可。这些特点应该在数据库的表达、设计以及查询功能上得到一定的体现。
模糊数据表达所要解决的问题是在传统的关系模型的哪些方面引入模糊性,从而使得现实世界中的某些不确定或不精确信息在数据库中得到反映。在传统的关系数据库中,有三个基本的亦是隐含着的假设:
(1)在任一关系(表)中的每一元组(行)中的每一个属性(字段)的值是其值域中的单个元素。例如,若年龄的取值域是[0,200],则张三的年龄必须是[0,200]中的一个元素,如21。
(2)在任一关系(表)中的每一个元组(行)都完全隶属于该关系(表),即每一出现在表中的行都与表所表达的概念完全相符。
(3)属性(字段)的取值域中的任意两个元素都被认为相互间完全不同。比如年龄值域[0,200]中的21和22就被认为是完全不同的两个值。 针对上述三种假设的不同程度上的模糊扩展,则形成不同的模糊数据表达模式。
模糊查询是指通过使用模糊集合或具有模糊特征的语言词对数据库进行查询。也就是说,查询标准或查询条件可包含模糊集合或语言词,而数据库本身则可以是传统(非模糊)数据库,也可是模糊数据库。目前国际上做的较多的工作主要集中在对传统数据库的模糊查询上。
模糊关系数据库的设计和传统关系数据库一样,旨在获得合理的数据库模式(Schema),进而避免可能出现的数据冗余和修改异常。
2.2SQL数据库的模糊查询
SQL Server数据库可以用SUBSTRING函数来实现模糊查询,SUBSTRING函数返回一个字符串的子串(从n1开始,共n2个字符)。其格式为:SUBSTRING(string fromn1 to n2)
如:
SELECT SUBSTRING(CUSTNAME FROM1 FOR 10) FROM CUSTOMER
其意为返回CUSTNAME的头10个字符。但SUBSTRING函数只能实现一定字段的模糊查询,而且本身区分大小写,需在程序中增加代码以提高其模糊度,程序代码较长,比较烦琐,用SQL的Select查询命令则可以很容易地实现数据库的查询。
在Select命令的Where子句中使用“LIKE”关键词和“%”通配符就可以做到模糊查询。下面语句在my_database数据库的Product表中查找ProductName字段的值含有“Sa”字符串的所有记录。
Use my_database
Select * From Product
Where ProductName LIKE “%Sa%”
GO
这种模糊查询虽然简便但效率不足,SQL Server数据库还提供了一种叫做Stored Procedure (存储过程)的数据库对象,用户可以将一些常用的命令过程以存储过程的形式存储起来,需要运行这些存储过程时,只要输入存储过程名即可。这样不仅简化了操作,而且提高了效率。存储过程名的选取应符合SQL Server的命名规则,当它以“#”开头时,表示一个临时存储过程,它只在应用程序运行时存在,程序结束后,被自动删除。
下面的语句创建一个名字为#query的临时存储过程:
Create Procedure #Que
文档评论(0)