运算符的一些符号,他们能够用于执行算术运算、字符串连接、赋值以及在字段、常量和变量之间进行比较。在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运算符。