Ⅳ、where子句
指定数据检索的条件,以限制返回的数据行
where子句中的查询条件
比较运算符 <、<=、>、>=、=、!=、!<、!>
范围说明:betweenA and B、
not between A and B
可选值列表:in 、 not in模式匹配:like、is not like
是否空值:is null 、is not null
上述条件的逻辑组合 and or not比较查询条件:text、ntext和image数据类型不能与比较运算符组合成查询条件
列表查询条件:in 关键字在大多数情况下应用于嵌套查询中,通常首先使用select语句选定一个范围,然后将选定的范围作为in关键字的符号条件的列表,从而得出最终的结果集
模式查询条件:
like、not like
通配符:* 匹配任意字符 ?匹配任意一个字符 大小写敏感like关键字中的通配符以及其含义
% 由0个或更多字符组成的任意字符串
- 任意的单个字符
[]用于指定范围[a-f]表示a到f范围内的任意单个字符
[^] 表示指定范围 例如[^a-f] 表示a到f范围外的任何单个字符
空值判断查询条件:null值表示字段的数据值未知或不可用,它并不表示零(数字值或二进制)、零长度的字符串或空白(字符值)
如果用户要查找的数据中本身就包含了通配符,如果slq_mail 就需要使用转义字符来区分通配符与实际存在的字符。其格式如下
like字符匹配串 escape转义字符
使用[]来将通配符指定为普通字符
Ⅴ、GROUP BY 子句
group by 子句指定查询结果的分组条件。其语法如下:
group by [all] group_by_expression [,····n] [with{cube|rollup}]
参数说明:
group_by_expression:指分组条件
通常是一个列名,但不能是列的别名。数据类型text、ntext、image或bit类型的列不能作为分组条件all 返回所有可能的查询结果组合,即使此组合中没有任何满足where子句的数据。分组的统计列如果不满足查询条件,则将由null值构成其数据。all选项不能与cube或rollup选项同时使用
cube:除了返回由group by 子句指定的列外,还返回按组统计的行。返回的结果先按分组的第一个条件列排序显示,再按第二个条件列排序显示,以此类推。统计行包括了group by 子句指定的列的各种组合的数据统计
rollup:与cube不同的是,此选项对group by子句中的列顺序敏感,它只返回第一个分组条件指定的列的统计行,改变列的顺序会使返回的结果的行数发生变化。
Ⅵ、having 子句
having子句指定分组搜索条件。having子句通常与group by 子句一起使用。text、ntext和image数据类型不能用于having子句。其语法如下
havinghaving子句与where子句相似,其区别在于其作用的对象不同。where子句作用于表和视图,having子句作用于组
order by 子句 指定查询结果的排序方式
order by {order_by_expression[asc|desc]}[···n]
参数说明order_by_expression指定排序规则,不能使用text、ntext 、image数据类型
asc : 指明查询结果按升序
desc:指明查询结果按降序排列