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