千鋒教育-做有情懷、有良心、有品質(zhì)的職業(yè)教育機構(gòu)

手機站
千鋒教育

千鋒學(xué)習(xí)站 | 隨時隨地免費學(xué)

千鋒教育

掃一掃進(jìn)入千鋒手機站

領(lǐng)取全套視頻
千鋒教育

關(guān)注千鋒學(xué)習(xí)站小程序
隨時隨地免費學(xué)習(xí)課程

當(dāng)前位置:首頁  >  技術(shù)干貨  > sql server怎么在存儲過程中模糊查詢?

sql server怎么在存儲過程中模糊查詢?

來源:千鋒教育
發(fā)布人:xqq
時間: 2023-10-13 21:00:26 1697202026

一、sql server在存儲過程中實現(xiàn)模糊查詢的方法

1、Wildcard操作符

Wildcard操作符:Wildcard是SQL Server支持的最基本的模糊查詢操作符,可以使用LIKE和=操作符實現(xiàn)模糊查詢。

使用LIKE操作符實現(xiàn)以“SMIT”為開頭的姓名查詢語句:

SELECT * FROM Customers WHERE LastName LIKE 'SMIT%'

使用=操作符實現(xiàn)精確匹配查詢語句:

SELECT * FROM Customers WHERE LastName = 'Smith'

2、between

把某一字段的值在特定范圍內(nèi)的記錄查詢出來:

select * from ScoreListwhere csharp between 80 and 90 --在ScoreList數(shù)據(jù)庫中查詢csharp成績在80~90之間的,列出全部列select StudentName, StudentAdress from Studentswhere Birthday between '1972-7-7' and '2022-7-7' --在Students數(shù)據(jù)庫中查詢Birthday在1972-7-7到 2022-7-7之間的,列出全部列兩項

3、in

把某一字段中內(nèi)容與所列出的查詢內(nèi)容列表匹配的記錄查詢出來:

select StudentName, StudentAdress, Age from Studentswhere Age in (21,22,23) --在Students數(shù)據(jù)庫中查詢Age是21,22,23歲的,并列出StudentName和StudentAdress,Age 三項select StudentName, StudentAdress from Studentswhere StudentAdress in ('Eric','Tom','Jack') --在Students數(shù)據(jù)庫中查詢StudentName是Eric,Tom,Jack,并列出StudentName和StudentAdress兩項

4、全文搜索

SQL Server提供了全文檢索功能,可以使用CONTAINS函數(shù)進(jìn)行模糊查詢。

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

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

5、使用存儲過程

可以使用存儲過程實現(xiàn)模糊查詢,并通過參數(shù)傳遞查詢條件。

創(chuàng)建一個存儲過程SP_FuzzySearch,根據(jù)輸入的姓名(@Name)進(jìn)行模糊查詢:

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

然后執(zhí)行存儲過程:

EXECUTE dbo.SP_FuzzySearch 'Smith'

二、SQL的模糊查詢通配符

1、%

表示任意0個或多個字符。一般在匹配字符串的前后都會加上%。舉例:匹配含有 “數(shù)據(jù)” 的字符串,可以用,WHERE FieldName LIKE ‘%數(shù)據(jù)%’。如果是匹配首(尾)含某個字符串的值,則用 數(shù)據(jù)%(%數(shù)據(jù))。

2、_

表示 單個 任意字符。當(dāng)我們需要限制匹配的字符串的長度時,可以用 _ 替代。舉例:當(dāng)需要匹配“北”開頭的兩個字符的對象時,可以用“北_”。

3、[]

羅列待匹配的單個字符。當(dāng)知道要匹配的對象的范圍時,我們可以用 [] 羅列這些字符。舉例:當(dāng)語句寫為:'[冬西南]瓜’,匹配的是 “冬瓜”,“西瓜”,“南瓜”字符串。'[0-4]’ 匹配的是 0,1,2,3,4。'[a-d]’ 匹配的是 a,b,c,d。對于通配符的匹配,需要在外層用 [] 括起來。

4、[^ ] 或者 [! ]

不含所羅列字符的單個字符(兩種寫法)。與第3點相反,用哪種匹配方式取決于匹配的集合哪個更小。如果匹配字符的集合小,就用 [],如果匹配的集合大,遠(yuǎn)大于不包含集合,則用 [^ ]。舉例:語句 [^冬西南]瓜,匹配的是:甜瓜、香瓜、壞瓜、傻瓜…… 這類不含 [冬西南] 的字符。

三、sql語言的特點

1、SQL風(fēng)格統(tǒng)一

SQL可以獨立完成數(shù)據(jù)庫生命周期中的全部活動,包括定義關(guān)系模式、錄入數(shù)據(jù)、建立數(shù)據(jù)庫、查詢、更新、維護(hù)、數(shù)據(jù)庫重構(gòu)、數(shù)據(jù)庫安全性控制等一系列操作,這就為數(shù)據(jù)庫應(yīng)用系統(tǒng)開發(fā)提供了良好的環(huán)境,在數(shù)據(jù)庫投入運行后,還可根據(jù)需要隨時逐步修改模式,且不影響數(shù)據(jù)庫的運行,從而使系統(tǒng)具有良好的可擴充性。

2、高度非過程化

非關(guān)系數(shù)據(jù)模型的數(shù)據(jù)操縱語言是面向過程的語言,用其完成用戶請求時,必須指定存取路徑。而用SQL進(jìn)行數(shù)據(jù)操作,用戶只需提出“做什么”,而不必指明“怎么做”,因此用戶無須了解存取路徑,存取路徑的選擇以及SQL語句的操作過程由系統(tǒng)自動完成。這不但大大減輕了用戶負(fù)擔(dān),而且有利于提高數(shù)據(jù)獨立性。

3、面向集合的操作方式

SQL采用集合操作方式,不僅查找結(jié)果可以是元組的集合,而且一次插入、刪除、更新操作的對象也可以是元組的集合。

4、以同一種語法結(jié)構(gòu)提供兩種使用方式

SQL既是自含式語言,又是嵌入式語言。作為自含式語言,它能夠獨立地用于聯(lián)機交互的使用方式,用戶可以在終端鍵盤上直接輸入SQL命令對數(shù)據(jù)庫進(jìn)行操作。作為嵌入式語言,SQL語句能夠嵌入到高級語言(如C、C#、JAVA)程序中,供程序員設(shè)計程序時使用。而在兩種不同的使用方式下,SQL的語法結(jié)構(gòu)基本上是一致的。這種以統(tǒng)一的語法結(jié)構(gòu)提供兩種不同的操作方式,為用戶提供了極大的靈活性與方便性。

5、語言簡潔,易學(xué)易用

SQL功能極強,但由于設(shè)計巧妙,語言十分簡潔,完成數(shù)據(jù)定義、數(shù)據(jù)操縱、數(shù)據(jù)控制的核心功能只用了9個動詞:CREATE、ALTER、DROP、SELECT、INSERT、UPDATE、DELETE、GRANT、REVOKE。且SQL語言語法簡單,接近英語口語,因此容易學(xué)習(xí),也容易使用。

延伸閱讀1:結(jié)構(gòu)化查詢語言

結(jié)構(gòu)化查詢語言(Structured Query Language)簡稱SQL,是一種特殊目的的編程語言,是一種數(shù)據(jù)庫查詢和程序設(shè)計語言,用于存取數(shù)據(jù)以及查詢、更新和管理關(guān)系數(shù)據(jù)庫系統(tǒng)。結(jié)構(gòu)化查詢語言是高級的非過程化編程語言,允許用戶在高層數(shù)據(jù)結(jié)構(gòu)上工作。它不要求用戶指定對數(shù)據(jù)的存放方法,也不需要用戶了解具體的數(shù)據(jù)存放方式,所以具有完全不同底層結(jié)構(gòu)的不同數(shù)據(jù)庫系統(tǒng), 可以使用相同的結(jié)構(gòu)化查詢語言作為數(shù)據(jù)輸入與管理的接口。結(jié)構(gòu)化查詢語言語句可以嵌套,這使它具有極大的靈活性和強大的功能。

聲明:本站稿件版權(quán)均屬千鋒教育所有,未經(jīng)許可不得擅自轉(zhuǎn)載。
10年以上業(yè)內(nèi)強師集結(jié),手把手帶你蛻變精英
請您保持通訊暢通,專屬學(xué)習(xí)老師24小時內(nèi)將與您1V1溝通
免費領(lǐng)取
今日已有369人領(lǐng)取成功
劉同學(xué) 138****2860 剛剛成功領(lǐng)取
王同學(xué) 131****2015 剛剛成功領(lǐng)取
張同學(xué) 133****4652 剛剛成功領(lǐng)取
李同學(xué) 135****8607 剛剛成功領(lǐng)取
楊同學(xué) 132****5667 剛剛成功領(lǐng)取
岳同學(xué) 134****6652 剛剛成功領(lǐng)取
梁同學(xué) 157****2950 剛剛成功領(lǐng)取
劉同學(xué) 189****1015 剛剛成功領(lǐng)取
張同學(xué) 155****4678 剛剛成功領(lǐng)取
鄒同學(xué) 139****2907 剛剛成功領(lǐng)取
董同學(xué) 138****2867 剛剛成功領(lǐng)取
周同學(xué) 136****3602 剛剛成功領(lǐng)取
相關(guān)推薦HOT
access數(shù)據(jù)庫超過255字段怎么辦?

一、access數(shù)據(jù)庫超過255字段怎么辦文本類型是文本或文本和數(shù)字的組合,以及不需要計算的數(shù)字,例如電話號碼。非常多為 255 個字符或長度小于 F...詳情>>

2023-10-13 22:50:08
數(shù)據(jù)量很大,邏輯不能在內(nèi)存里做怎么辦?

一、數(shù)據(jù)量很大,邏輯不能在內(nèi)存里做怎么辦沒有必要考慮是否數(shù)據(jù)加載到內(nèi)存中,直接使用數(shù)據(jù)庫處理即可;從描述的內(nèi)容看,只是判斷轉(zhuǎn)換的操作,...詳情>>

2023-10-13 22:48:22
MySQL 是如何實現(xiàn)四大隔離級別的?

一、MySQL 是如何實現(xiàn)四大隔離級別的首先說讀未提交,它是性能較好,也可以說它是最野蠻的方式,因為它壓根兒就不加鎖,所以根本談不上什么隔離...詳情>>

2023-10-13 22:46:57
MySQL數(shù)據(jù)庫有哪些基本的索引類型?

一、MySQL數(shù)據(jù)庫有哪些基本的索引類型索引分單列索引和組合索引。單列索引,即一個索引只包含單個列,一個表可以有多個單列索引,但這不是組合...詳情>>

2023-10-13 22:45:44
數(shù)據(jù)庫 sharding 要注意些什么?

一、數(shù)據(jù)庫 sharding 要注意些什么Sharding的基本思想就要把一個數(shù)據(jù)庫切分成多個部分放到不同的數(shù)據(jù)庫(server)上,從而緩解單一數(shù)據(jù)庫的性能問...詳情>>

2023-10-13 22:43:50
快速通道
久久亚洲中文字幕精品一区四,亚洲日本另类欧美一区二区,久久久久久久这里只有免费费精品,高清国产激情视频在线观看
亚洲系列日本系列精品 | 欧美另类激情在线播放 | 亚洲成a人片在线不卡 | 中文字幕在线观看网址 | 亚洲最新永久观看在线 | 思思热精品在线观看 |