運算符的一些符號,他們能夠用於執行算術運算、字符串連接、賦值以及在字段、常量和變量之間進行比較。在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運算符。