3.4.8 表达式的分类
根据连接表达式的运算符进行分类,可以将表达式分为算术表达式、比较表达式、逻辑表达式、按位表达式和混合表达式等;根据表达式的作用进行分类,可以将表达式分为字段名表达式、目标表达式和条件表达式。
1.字段名表达式
字段名表达式可以是单一的字段名或几个字段的组合,还可以是由字段、作用于字段的集合函数和常量的任意算术运算(+、-、*、/)组成的运算表达式,主要包括数值表达式、字符表达式、逻辑表达式和日期表达式4种。
2.目标表达式
目标表达式有4种构成方式。
(1)*:表示选择相应基表和视图的所有字段。
(2)<表名>.*:表示选择指定的基表和视图的所有字段。
(3)集函数():表示在相应的表中按集函数操作和运算。
(4)[<表名>.]字段名表达式[,[<表名>.]<字段名表达式>]……:表示按字段名表达式在多个指定的表中选择。
3.条件表达式
常用的条件表达式有以下6种:
(1)比较大小——应用比较运算符构成表达式,主要的比较运算符有“=”“>”“>=”“<”“<=”“!=”“<>”“!>”(不大于)“!<”(不小于)、NOT(与比较运算符相同,对条件求非)。
(2)指定范围——(NOT)BETWEEN…AND…运算符查找字段值在或者不在指定范围内的记录。BETWEEN后面指定范围的最小值,AND后面指定范围的最大值。
(3)集合(NOT)IN——查询字段值属于或者不属于指定集合内的记录。
(4)字符匹配——(NOT)LIKE ‘<匹配字符串>’[ESCAPE ‘<换码字符>’]查找字段值满足<匹配字符串>中指定的匹配条件的记录。<匹配字符串>可以是一个完整的字符串,也可以包含通配符“_”和“%”,“_”代表任意单个字符,“%”代表任意长度的字符串。
(5)空值IS(NOT)NULL——查找字段值为空(不为空)的记录。NULL不能用来表示无形值、默认值、不可用值以及取最低值或取最高值。SQL规定,在含有运算符“+”“-”“*”“/”的算术表达式中,若有一个值是空值,则该算术表达式的值也是空值;任何一个含有NULL比较操作结果的取值都为FALSE。
(6)多重条件AND和OR——AND表达式用来查找字段值同时满足AND相连接的查询条件的记录。OR表达式用来查询字段值满足OR连接的查询条件中任意一个的记录。AND运算符的优先级高于OR运算符。