字段名表达式
字段名表达式可以是单一的字段名或几个字段的组合,还可以是有字段、作用于字段的集合函数和常量的任意算术运算(+、-、*、/)组成的运算表达式。主要包括数值表达式、字符表达式、逻辑表达式和日期表达式。
目标表达式
目标表达式有四种构成方式
- *:表示选择相应基表和视图的所有字段
- <表名>:*:表示选择指定的基表和视图的所有字段
- 集函数():表示在相应的表中按集函数操作和运算
- [<表名>]字段名表达式[,<表名>.]<字段名表达式>…表示字段名表达式在多个指定的表中选择
条件表达式
常用的条件表达式有六种
- 比较大小,应用比较运算符构成表达式,主要的比较运算符有 =、>、>=、<、<=、!=、<>、!>、!<、NOt(对条件求非)
- 指定范围(NOT) BETWEEN AND运算符查找字段值在或者不在指定范围内的记录。BETWEEN后面指定范围的最小值,AND后面指定范围的最大值
- 集合(NOT)IN查询字段值属于或者不属于指定集合内的记录
字符匹配
(NOT)LIKE<匹配字符串>[ESCAPE]<换码字符>查找字段值满足<匹配字符串>中指定的匹配条件的记录。<匹配字符串>可以是一个完整的字符串,也可以包含通配符_和%,_代表任意单个字符,%代表任意长度的字符串
空值IS(NOT)NULL
查找字段值为空(不为空)的记录,NULL不能用来表示无形值、默认值、不可用值、以及去最低值或最高值。SQL规定,在含有运算符+、-*、/的算术表达式中,若有一个值是空值,则该算术表达式的值也是空值;任何一个含有NULL比较操作结果的取值都为FALSE
多重条件AND和OR
AND表达式用来查找字段值相同时满足AND相连接的查询条件的记录。OR表达式用来查询字段值满足OR连接的查询条件中任意一个的记录。AND运算符的优先级高于OR运算符。
通配符
查询时,有时无法指定一个清楚的查询条件,此时可以使用SQL通配符,通配符用来代替一个或多个字符,在使用通配符时,要与LIKE运算符一起使用。Transact-SQL常用的通配符如:
通配符 | 说明 | 例子 | 匹配值示例 |
---|---|---|---|
% | 匹配任意长度的字符,甚至包含0字符 | q%e匹配字符e前面有任意个q字符 | quite、quote |
- | 匹配任意单个字符 | _here匹配以here结尾的值 | there |
[字符集合] | 匹配字符集合中的任何一个字符 | [cq]匹配c或q | dictate |
[^] | 匹配不在括号中的任何字符 | [^abc]匹配任何不包含a、b、c的字符串 | find |