Sql Server系列:运算符和表达式

时间:2023-10-03 09:03:49

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