一、模糊查詢(like)
在SQL Server Management Studio (SSMS) 中,進(jìn)行模糊查詢主要是通過(guò)使用like
操作符來(lái)實(shí)現(xiàn)的。like
操作符用于在where
語(yǔ)句中搜索列中具有指定模式的數(shù)據(jù)。
我們?cè)诤?jiǎn)單例子中來(lái)了解:
-
%
通配符:表示任意數(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è)字符開(kāi)頭,后面跟著"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"開(kāi)頭,后面跟著"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"開(kāi)頭的記錄,但會(huì)選擇以其他字符開(kāi)頭后面跟著"pattern"的所有記錄。 -
in
字符集:不匹配括號(hào)內(nèi)的任意單個(gè)字符。in 操作符允許在where子句中指定多個(gè)值,用來(lái)測(cè)試某個(gè)列的值是否包含在指定的值列表中。如果列的值匹配列表中的任意一個(gè)值,那么這個(gè)記錄就會(huì)被選中。
select StudentName,StudentAddress,Birthday from Students
where StudentName in('王小二','小丹')
這條語(yǔ)句選取名字為“王小二”或“小丹”的學(xué)生的名字、地址和出生日期。
使用like
操作符時(shí),要注意%
和_
可以放在模式的任何位置,并且可以使用多個(gè)通配符來(lái)構(gòu)造復(fù)雜的搜索模式。此外,模糊查詢可能會(huì)影響數(shù)據(jù)庫(kù)查詢性能,特別是當(dāng)通配符出現(xiàn)在模式的開(kāi)始時(shí),因?yàn)檫@會(huì)阻止SQL Server使用索引進(jìn)行搜索。
二、查詢函數(shù)
我們先來(lái)匯總一些比較常用的函數(shù)
在SQL Server Management Studio中,可以使用多種內(nèi)置的查詢函數(shù)來(lái)執(zhí)行數(shù)據(jù)檢索和轉(zhuǎn)換。這些函數(shù)屬于不同的類別,如字符串函數(shù)、數(shù)值函數(shù)、日期和時(shí)間函數(shù)、轉(zhuǎn)換函數(shù)等。以下是一些常用的SQL Server查詢函數(shù)的分類和例子:
-
字符串函數(shù):
-
len(string)
: 返回字符串的長(zhǎng)度。 -
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)換成小寫(xiě)。 -
upper(string)
: 將字符串轉(zhuǎn)換成大寫(xiě)。 -
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# 總成績(jī) from ScoreList
select 總?cè)藬?shù)=count(*)from Students
select MAX(Csharp) as C#最高,MIN(Csharp) as C#最低分,AVG(Csharp) as C#平均分 from ScoreList
這些SQL查詢語(yǔ)句用于從數(shù)據(jù)庫(kù)表中提取特定的統(tǒng)計(jì)信息:
select sum(Csharp) as C# 總成績(jī) from ScoreList
這個(gè)查詢計(jì)算 ScoreList
表中 Csharp
列(代表學(xué)生的C#成績(jī))的值的總和,并將結(jié)果命名為 C# 總成績(jī)
。查詢的結(jié)果將是所有記錄中C#成績(jī)的總和。
select 總?cè)藬?shù)=count(*) from Students
這個(gè)查詢計(jì)算 Students
表中的記錄數(shù),即學(xué)生總數(shù),并將這個(gè)數(shù)命名為 總?cè)藬?shù)
。count(*)
函數(shù)計(jì)算表中的記錄總數(shù),包括所有的行,無(wú)論列值是否為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#成績(jī)的最高值,結(jié)果列命名為C#最高
。 -
MIN(Csharp) as C#最低分
:C#成績(jī)的最低值,結(jié)果列命名為C#最低分
。 -
AVG(Csharp) as C#平均分
:C#成績(jī)的平均值,結(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ù):文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-815064.html
-
isnull(check_expression, replacement_value)
: 檢查一個(gè)表達(dá)式是否為null,如果是,則返回替代值。 -
coalesce(expression1, expression2, ...)
: 返回參數(shù)列表中第一個(gè)非NULL表達(dá)式。
-
這些函數(shù)可以在查詢中單獨(dú)使用,或者結(jié)合其他SQL語(yǔ)句來(lái)提高數(shù)據(jù)處理的能力和靈活性。通過(guò)這些函數(shù),可以對(duì)數(shù)據(jù)進(jìn)行有效的處理和轉(zhuǎn)換,以滿足各種復(fù)雜的業(yè)務(wù)邏輯需求。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-815064.html
到了這里,關(guān)于SQL Server 數(shù)據(jù)表模糊查詢(like 用法)以及查詢函數(shù)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!