SQL?Server數(shù)據(jù)表模糊查詢(like用法)以及查詢函數(shù)詳解
一、模糊查詢(like)
在SQL Server Management Studio (SSMS) 中,進(jìn)行模糊查詢主要是通過使用like
操作符來實(shí)現(xiàn)的。like
操作符用于在where
語句中搜索列中具有指定模式的數(shù)據(jù)。
我們?cè)诤唵卫又衼砹私猓?/p>
%
通配符:表示任意數(shù)量的字符。select * from table_name where column_name like '%pattern%';
這個(gè)例子會(huì)選擇
column_name
列中包含"pattern"這個(gè)詞的所有記錄,就是不管內(nèi)容是啥,只要里面包含pattern就會(huì)被查詢到。_
通配符:表示單個(gè)字符。select * from table_name where column_name like '_pattern%';
這個(gè)例子會(huì)選擇
column_name
列中以任意單個(gè)字符開頭,后面跟著"pattern"的所有記錄。比如:apattern、bpattern[]
字符集:匹配括號(hào)內(nèi)的任意單個(gè)字符。select * from table_name where column_name like '[a-c]pattern%';
這個(gè)例子會(huì)選擇
column_name
列中以"a"、"b"或"c"開頭,后面跟著"pattern"的所有記錄。[^]
或[!]
負(fù)字符集:不匹配括號(hào)內(nèi)的任意單個(gè)字符。select * from table_name where column_name like '[^a-c]pattern%';
這個(gè)例子會(huì)排除
column_name
列中以"a"、"b"或"c"開頭的記錄,但會(huì)選擇以其他字符開頭后面跟著"pattern"的所有記錄。in
字符集:不匹配括號(hào)內(nèi)的任意單個(gè)字符。in 操作符允許在where子句中指定多個(gè)值,用來測(cè)試某個(gè)列的值是否包含在指定的值列表中。如果列的值匹配列表中的任意一個(gè)值,那么這個(gè)記錄就會(huì)被選中。
select StudentName,StudentAddress,Birthday from Students where StudentName in('王小二','小丹')
這條語句選取名字為“王小二”或“小丹”的學(xué)生的名字、地址和出生日期。
使用like
操作符時(shí),要注意%
和_
可以放在模式的任何位置,并且可以使用多個(gè)通配符來構(gòu)造復(fù)雜的搜索模式。此外,模糊查詢可能會(huì)影響數(shù)據(jù)庫查詢性能,特別是當(dāng)通配符出現(xiàn)在模式的開始時(shí),因?yàn)檫@會(huì)阻止SQL Server使用索引進(jìn)行搜索。
二、查詢函數(shù)
我們先來匯總一些比較常用的函數(shù)
在SQL Server Management Studio中,可以使用多種內(nèi)置的查詢函數(shù)來執(zhí)行數(shù)據(jù)檢索和轉(zhuǎn)換。這些函數(shù)屬于不同的類別,如字符串函數(shù)、數(shù)值函數(shù)、日期和時(shí)間函數(shù)、轉(zhuǎn)換函數(shù)等。以下是一些常用的SQL Server查詢函數(shù)的分類和例子:
字符串函數(shù):
len(string)
: 返回字符串的長度。charindex(substring, string)
: 返回子字符串在字符串中的位置。substring(string, start, length)
: 返回字符串的一個(gè)子字符串。replace(string, old_substring, new_substring)
: 替換字符串中的所有指定子字符串。left(string, number_of_chars)
: 返回字符串左側(cè)的指定數(shù)量的字符。right(string, number_of_chars)
: 返回字符串右側(cè)的指定數(shù)量的字符。lower(string)
: 將字符串轉(zhuǎn)換成小寫。upper(string)
: 將字符串轉(zhuǎn)換成大寫。trimi(string)
: 去掉字符串左側(cè)的空格。rtrim(string)
: 去掉字符串右側(cè)的空格。concat(string1, string2, ...)
: 連接兩個(gè)或多個(gè)字符串。
數(shù)值函數(shù):
abs(number)
: 返回?cái)?shù)字的絕對(duì)值。floor(number)
: 返回小于或等于指定數(shù)字的最大整數(shù)。ceiling(number)
: 返回大于或等于指定數(shù)字的最小整數(shù)。round(number, decimals)
: 返回?cái)?shù)字四舍五入到指定的小數(shù)位數(shù)后的值。SUM(column)
: 返回某列數(shù)值總和。AVG(column)
: 返回某列的平均值。MIN(column)
: 返回某列的最小值。MAX(column)
: 返回某列的最大值。
舉個(gè)例子:比如我們有一個(gè)統(tǒng)計(jì)學(xué)生分?jǐn)?shù)的表ScoreList
select sum(Csharp) as C# 總成績 from ScoreList select 總?cè)藬?shù)=count(*)from Students select MAX(Csharp) as C#最高,MIN(Csharp) as C#最低分,AVG(Csharp) as C#平均分 from ScoreList
這些SQL查詢語句用于從數(shù)據(jù)庫表中提取特定的統(tǒng)計(jì)信息:
select sum(Csharp) as C# 總成績 from ScoreList
這個(gè)查詢計(jì)算 ScoreList
表中 Csharp
列(代表學(xué)生的C#成績)的值的總和,并將結(jié)果命名為 C# 總成績
。查詢的結(jié)果將是所有記錄中C#成績的總和。
select 總?cè)藬?shù)=count(*) from Students
這個(gè)查詢計(jì)算 Students
表中的記錄數(shù),即學(xué)生總數(shù),并將這個(gè)數(shù)命名為 總?cè)藬?shù)
。count(*)
函數(shù)計(jì)算表中的記錄總數(shù),包括所有的行,無論列值是否為NULL。
select MAX(Csharp) as C#最高,MIN(Csharp) as C#最低分,AVG(Csharp) as C#平均分 from ScoreList
這個(gè)查詢從 ScoreList
表中提取三個(gè)統(tǒng)計(jì)數(shù)據(jù):
MAX(Csharp) as C#最高
:C#成績的最高值,結(jié)果列命名為C#最高
。MIN(Csharp) as C#最低分
:C#成績的最低值,結(jié)果列命名為C#最低分
。AVG(Csharp) as C#平均分
:C#成績的平均值,結(jié)果列命名為C#平均分
。
日期和時(shí)間函數(shù):
getdate()
: 返回當(dāng)前系統(tǒng)的日期和時(shí)間。datepart(part, date)
: 返回日期的指定部分(如年、月、日)。datediff(part, startdate, enddate)
: 返回兩個(gè)日期之間的差異。dateadd(part, number, date)
: 在日期上添加指定的時(shí)間間隔。
轉(zhuǎn)換函數(shù):
cast(expression AS data_type)
: 將表達(dá)式轉(zhuǎn)換為指定的數(shù)據(jù)類型。convert(data_type(length), expression, style)
: 轉(zhuǎn)換數(shù)據(jù)類型,并可以使用風(fēng)格參數(shù)。
聚合函數(shù):
count(*)
: 計(jì)算表中的記錄數(shù)。cout(column)
: 計(jì)算某列非NULL值的數(shù)目。group by
: 用于結(jié)合聚合函數(shù),按一個(gè)或多個(gè)列對(duì)結(jié)果集進(jìn)行分組。
其他有用函數(shù):
isnull(check_expression, replacement_value)
: 檢查一個(gè)表達(dá)式是否為null,如果是,則返回替代值。coalesce(expression1, expression2, ...)
: 返回參數(shù)列表中第一個(gè)非NULL表達(dá)式。
這些函數(shù)可以在查詢中單獨(dú)使用,或者結(jié)合其他SQL語句來提高數(shù)據(jù)處理的能力和靈活性。通過這些函數(shù),可以對(duì)數(shù)據(jù)進(jìn)行有效的處理和轉(zhuǎn)換,以滿足各種復(fù)雜的業(yè)務(wù)邏輯需求。
總結(jié)
到此這篇關(guān)于SQL Server數(shù)據(jù)表模糊查詢(like用法)以及查詢函數(shù)的文章就介紹到這了,更多相關(guān)SQLServer數(shù)據(jù)表模糊查詢內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
SQLServer2019 數(shù)據(jù)庫環(huán)境搭建與使用的實(shí)現(xiàn)
這篇文章主要介紹了SQLServer2019 數(shù)據(jù)庫環(huán)境搭建與使用的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-04-04SQL Server 數(shù)據(jù)庫每天自動(dòng)備份作業(yè)操作圖文詳解
這篇文章主要介紹了SQL Server 數(shù)據(jù)庫每天自動(dòng)備份的設(shè)置方法,然后可以通過rsync定時(shí)同步到別的服務(wù)器上,通過bak還原數(shù)據(jù)庫也可以達(dá)到每天備份的目的2024-04-04SQL Server 事務(wù),異常和游標(biāo)詳解
這篇文章主要為大家介紹了SQLServer事務(wù),異常和游標(biāo),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助2022-01-01MSSQL轉(zhuǎn)MYSQL,gb2312轉(zhuǎn)utf-8無亂碼解決方法
MSSQL轉(zhuǎn)MYSQL,gb2312轉(zhuǎn)utf-8無亂碼解決方法,需要的朋友可以參考下。2010-06-06SQL?Server?Reporting?Services?匿名登錄的問題及解決方案
這篇文章主要介紹了關(guān)于?SQL?Server?Reporting?Services?匿名登錄的解決方案,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-09-09解析SQL?Server?CDC配合Kafka?Connect監(jiān)聽數(shù)據(jù)變化的問題
這篇文章主要介紹了SQL?Server?CDC配合Kafka?Connect監(jiān)聽數(shù)據(jù)變化,除了數(shù)據(jù)庫開啟CDC支持以外,主要還是要將變更的數(shù)據(jù)通過Kafka?Connect傳輸數(shù)據(jù),Debezium是目前官方推薦的連接器,本文給大家分享實(shí)現(xiàn)步驟,感興趣的朋友跟隨小編一起看看吧2021-12-12SQL Server誤區(qū)30日談 第11天 鏡像在檢測(cè)到故障后瞬間就能故障轉(zhuǎn)移
數(shù)據(jù)庫鏡像的故障轉(zhuǎn)移既可以自動(dòng)發(fā)起,也可以手動(dòng)發(fā)起2013-01-01SQL語句的各個(gè)關(guān)鍵字的解析過程詳細(xì)總結(jié)
由于最近需要做一些sql query性能提升的研究,因此研究了一下sql語句的解析過程;本文是我在看了各種資料后手機(jī)總結(jié)的,會(huì)詳細(xì)的,一步一步的講述一個(gè)sql語句的各個(gè)關(guān)鍵字的解析過程,歡迎大家互相學(xué)習(xí)2013-01-01