千锋教育-做有情怀、有良心、有品质的职业教育机构

手机站
千锋教育

千锋学习站 | 随时随地免费学

千锋教育

扫一扫进入千锋手机站

领取全套视频
千锋教育

关注千锋学习站小程序
随时随地免费学习课程

当前位置:首页  >  技术干货  > sql server怎么在存储过程中模糊查询?

sql server怎么在存储过程中模糊查询?

来源:千锋教育
发布人:xqq
时间: 2023-10-13 21:00:26 1697202026

一、sql server在存储过程中实现模糊查询的方法

1、Wildcard操作符

Wildcard操作符:Wildcard是SQL Server支持的最基本的模糊查询操作符,可以使用LIKE和=操作符实现模糊查询。

使用LIKE操作符实现以“SMIT”为开头的姓名查询语句:

SELECT * FROM Customers WHERE LastName LIKE 'SMIT%'

使用=操作符实现精确匹配查询语句:

SELECT * FROM Customers WHERE LastName = 'Smith'

2、between

把某一字段的值在特定范围内的记录查询出来:

select * from ScoreListwhere csharp between 80 and 90 --在ScoreList数据库中查询csharp成绩在80~90之间的,列出全部列select StudentName, StudentAdress from Studentswhere Birthday between '1972-7-7' and '2022-7-7' --在Students数据库中查询Birthday在1972-7-7到 2022-7-7之间的,列出全部列两项

3、in

把某一字段中内容与所列出的查询内容列表匹配的记录查询出来:

select StudentName, StudentAdress, Age from Studentswhere Age in (21,22,23) --在Students数据库中查询Age是21,22,23岁的,并列出StudentName和StudentAdress,Age 三项select StudentName, StudentAdress from Studentswhere StudentAdress in ('Eric','Tom','Jack') --在Students数据库中查询StudentName是Eric,Tom,Jack,并列出StudentName和StudentAdress两项

4、全文搜索

SQL Server提供了全文检索功能,可以使用CONTAINS函数进行模糊查询。

搜索邮件正文中包含“find me”文本的邮件:

SELECT * FROM Email WHERE CONTAINS(Body, 'find me')

5、使用存储过程

可以使用存储过程实现模糊查询,并通过参数传递查询条件。

创建一个存储过程SP_FuzzySearch,根据输入的姓名(@Name)进行模糊查询:

CREATE PROCEDURE dbo.SP_FuzzySearch (@Name VARCHAR(50))ASBEGINSELECT *FROM CustomerWHERE Lastname LIKE '%' + @Name + '%'END

然后执行存储过程:

EXECUTE dbo.SP_FuzzySearch 'Smith'

二、SQL的模糊查询通配符

1、%

表示任意0个或多个字符。一般在匹配字符串的前后都会加上%。举例:匹配含有 “数据” 的字符串,可以用,WHERE FieldName LIKE ‘%数据%’。如果是匹配首(尾)含某个字符串的值,则用 数据%(%数据)。

2、_

表示 单个 任意字符。当我们需要限制匹配的字符串的长度时,可以用 _ 替代。举例:当需要匹配“北”开头的两个字符的对象时,可以用“北_”。

3、[]

罗列待匹配的单个字符。当知道要匹配的对象的范围时,我们可以用 [] 罗列这些字符。举例:当语句写为:'[冬西南]瓜’,匹配的是 “冬瓜”,“西瓜”,“南瓜”字符串。'[0-4]’ 匹配的是 0,1,2,3,4。'[a-d]’ 匹配的是 a,b,c,d。对于通配符的匹配,需要在外层用 [] 括起来。

4、[^ ] 或者 [! ]

不含所罗列字符的单个字符(两种写法)。与第3点相反,用哪种匹配方式取决于匹配的集合哪个更小。如果匹配字符的集合小,就用 [],如果匹配的集合大,远大于不包含集合,则用 [^ ]。举例:语句 [^冬西南]瓜,匹配的是:甜瓜、香瓜、坏瓜、傻瓜…… 这类不含 [冬西南] 的字符。

三、sql语言的特点

1、SQL风格统一

SQL可以独立完成数据库生命周期中的全部活动,包括定义关系模式、录入数据、建立数据库、查询、更新、维护、数据库重构、数据库安全性控制等一系列操作,这就为数据库应用系统开发提供了良好的环境,在数据库投入运行后,还可根据需要随时逐步修改模式,且不影响数据库的运行,从而使系统具有良好的可扩充性。

2、高度非过程化

非关系数据模型的数据操纵语言是面向过程的语言,用其完成用户请求时,必须指定存取路径。而用SQL进行数据操作,用户只需提出“做什么”,而不必指明“怎么做”,因此用户无须了解存取路径,存取路径的选择以及SQL语句的操作过程由系统自动完成。这不但大大减轻了用户负担,而且有利于提高数据独立性。

3、面向集合的操作方式

SQL采用集合操作方式,不仅查找结果可以是元组的集合,而且一次插入、删除、更新操作的对象也可以是元组的集合。

4、以同一种语法结构提供两种使用方式

SQL既是自含式语言,又是嵌入式语言。作为自含式语言,它能够独立地用于联机交互的使用方式,用户可以在终端键盘上直接输入SQL命令对数据库进行操作。作为嵌入式语言,SQL语句能够嵌入到高级语言(如C、C#、JAVA)程序中,供程序员设计程序时使用。而在两种不同的使用方式下,SQL的语法结构基本上是一致的。这种以统一的语法结构提供两种不同的操作方式,为用户提供了极大的灵活性与方便性。

5、语言简洁,易学易用

SQL功能极强,但由于设计巧妙,语言十分简洁,完成数据定义、数据操纵、数据控制的核心功能只用了9个动词:CREATE、ALTER、DROP、SELECT、INSERT、UPDATE、DELETE、GRANT、REVOKE。且SQL语言语法简单,接近英语口语,因此容易学习,也容易使用。

延伸阅读1:结构化查询语言

结构化查询语言(Structured Query Language)简称SQL,是一种特殊目的的编程语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统。结构化查询语言是高级的非过程化编程语言,允许用户在高层数据结构上工作。它不要求用户指定对数据的存放方法,也不需要用户了解具体的数据存放方式,所以具有完全不同底层结构的不同数据库系统, 可以使用相同的结构化查询语言作为数据输入与管理的接口。结构化查询语言语句可以嵌套,这使它具有极大的灵活性和强大的功能。

声明:本站稿件版权均属千锋教育所有,未经许可不得擅自转载。
10年以上业内强师集结,手把手带你蜕变精英
请您保持通讯畅通,专属学习老师24小时内将与您1V1沟通
免费领取
今日已有369人领取成功
刘同学 138****2860 刚刚成功领取
王同学 131****2015 刚刚成功领取
张同学 133****4652 刚刚成功领取
李同学 135****8607 刚刚成功领取
杨同学 132****5667 刚刚成功领取
岳同学 134****6652 刚刚成功领取
梁同学 157****2950 刚刚成功领取
刘同学 189****1015 刚刚成功领取
张同学 155****4678 刚刚成功领取
邹同学 139****2907 刚刚成功领取
董同学 138****2867 刚刚成功领取
周同学 136****3602 刚刚成功领取
相关推荐HOT