運算子的一些符號,他們能夠用於執行算術運算、字串連線、賦值以及在欄位、常量和變數之間進行比較。在SQL Server 2012中,運算子主要由以下6大類:算術運算子、賦值運算子、比較運算子、邏輯運算子、連線運算子以及按位運算子。
1. 運算子
1.1> 算術運算子
算術運算子可以在兩個表示式上執行數學運算,這兩個表示式可以是任何數值資料型別。
運算子 | 作用 |
---|---|
+ | 加法運算 |
- | 減法運算 |
* | 乘法運算 |
/ | 除法運算,返回商 |
% | 求餘運算,返回餘數 |
1.2> 比較運算子
比較運算子用來比較兩個表示式的大小,表示式可以是字元、數字或日期資料,其比較結果是Boolean值。
運算子 | 含義 |
---|---|
= | 等於 |
> | 大於 |
< | 小於 |
>= | 大於等於 |
<= | 小於等於 |
<> | 不等於 |
1.3> 邏輯運算子
邏輯運算子可以把多個邏輯表示式連線起來測試,以獲得其真實情況。返回帶有TRUE、FALSE或UNKNOWN的Boolean資料型別。
運算子 | 含義 |
---|---|
ALL | 如果一組的比較都為TRUE,則返回TRUE。 |
AND | 如果兩個布林表示式都為TRUE,則返回TRUE。 |
ANY | 如果一組的比較中任何一個為TRUE,則返回TRUE。 |
>BETWEEN | 如果運算元在某個範圍之內,則返回TRUE。 |
EXISTS | 如果子查詢包含一些行,則返回TRUE。 |
IN | 如果運算元等於表示式列表中的一個,則返回TRUE。 |
LIKE | 如果運算元與一種模式相匹配,則返回TRUE。 |
NOT | 對任何其他布林運算子的值取反。 |
OR | 如果兩個布林表示式中的一個為TRUE,則返回TRUE。 |
SOME | 如果在一組比較中,有些為TRUE,則返回TRUE。 |
1.4> 連線運算子
加號(+)是字串串聯運算子,可以將兩個或兩個以上字串合併成一個字串。
1.5> 按位運算子
按位運算子在兩個表示式之間執行位操作,這兩個表示式可以為整數資料型別中的任何資料型別。
運算子 | 含義 |
---|---|
& | 位與 |
| | 位或 |
^ | 位異或 |
~ | 數字非 |
2. 表示式
根據連線表示式的運算子進行分類,可以將表示式分為算術表示式、比較表示式、邏輯表示式、按位表示式和混合表示式等;根據表示式的作用進行分類,可以將表示式分為欄位名錶達式、目標表示式和條件表示式。
2.1> 欄位名錶達式
欄位名錶達式可以是單一的欄位名或幾個欄位的組合,還可以是由欄位、作用於欄位的集合函式和常量的任意算術組成的運算表示式。主要包括數值表示式、字元表示式、邏輯表示式和日期表示式。
2.2> 目標表示式
目標表示式有4中構成方式:
(1)*:表示選擇相應基表和檢視的所有欄位。
(2)<表名>.:表示選擇指定的基表和檢視的所有欄位。
(3)集函式():表示在相應的表中按集函式操作和運算。
(4)[<表名>.]欄位名錶達式[,[<表名>.]<欄位名錶達式>]...:表示按欄位名錶達式在多個指定的表中選擇。
2.3> 條件表示式
常用的條件表示式有以下6種:
(1)比較大小——應用比較運算子構成表示式。
(2)指定範圍——(NOT)BETWEEN...AND...運算子查詢欄位值在或者不在指定範圍內的記錄。BETWEEN後面指定範圍的最小值,AND指定範圍的最大值。
(3)集合(NOT)IN——查詢欄位值屬於或不屬於指定集合內的記錄。
(4)字元匹配——(NOT)LIKE查詢欄位值滿足匹配字串中指定的匹配條件的記錄。匹配字串可以是一個完整的字串,也可以包含萬用字元“_”和“%”,“_”表示任意單個字元,"%"表示任意長度的字串。
(5)空值IS(NOT) NULL——查詢欄位值(不)為空的記錄。
(6)多重條件AND和OR。AND表示式用來查詢欄位值同時滿足AND相連線的查詢條件的記錄。OR表示式用來查詢欄位值滿足OR連線的查詢條件中的任意一個的記錄。AND運算子的優先順序高於OR運算子。