谓词和运算符

谓词:在计算机语言的环境下,谓词是指条件表达式的求值返回真或假的过程。(来自百度百科)。

简单记忆可以一句话:
在T-SQL 中谓词是取值为true,false或unknown的表达式。

对于通常的函数来说,返回值有可能是数字、字符串或者日期等,但是谓词的返回值都是真值(true/false/unknown)。这是谓词和函数的最大区别。

SQL中的谓词主要有 LKIE、BETWEEN、IS NULL、IS NOT NULL、IN、EXISTS

一、LIKE——模糊查询,用来检查字符串是否能够匹配指定的模式。
会使用到一些通配符(wildcard)
- %(百分号)表示任意长度的字符串,包括空字符串;
- -(下划线)表示任意单个字符;
- [<字符列>]字符列,表示必须匹配列指定字符中的一个字符
eg:查询返回以字符’A’,或者’B’,或者’C’开头的所有雇员
select empid,lastname
from hr.employees
where lastname like ‘[ABC]’%;
- [<>-<>]表示字符列范围,必须匹配指定范围内的一个字符。
eg:查询返回姓氏以字符‘A’到’E’开头的所有员工
select empid,lastname
from hr.employees
where lastname like ‘[A-E]%’;
- [^字符列或范围]
方括号中包含一个插入符(^),后面跟着一个字符列或范围,表示不属于指定字符列或范围内的任意单个字符。
eg:查询返回不是以字符‘A’到‘E’开头的所有员工
select empid,lastname
from hr.employees
where lastname like ‘[^A-E]%’;
还有转义字符了解一下。escape

二、BETWEEN(and)——范围查询

    BETWEEN的特点是结果中会包含临界值。

三、IS NULL、IS NOT NULL

    查询某些值位NULL或不为NULL的数据列是使用。

四、IN——OR的简便用法 反义;NOT IN

    使用IN和NOT IN 时,是无法选出NULL数据的。

    IN谓词可以使用子查询作为其参数来使用。子查询即使SQL内部生成的表,因此可以说能将表或视图作为IN的参数。

五、EXIST(用在子查询中)

    EXIST的作用就是判断是否存在满足某种条件的记录,如果存在就返回真(true),不存在就返回假(false)。
    NOT EXIST 与之正好相反。

注意:Exist使用的是二值谓词逻辑,总是返回true和false,而绝对不会返回unknown。
Not in 和Not exists的区别
如果在实际使用中要在查询中排除null值,可以显式或隐式的排除。
显示的排除就是在使用not in 的子查询中增加一个过滤条件where 字段 is not null;
如果在有NULL值得情况下使用not in 而不加过滤条件则查询会返回一个空的结果集。
select custid,companyname
from sales.customers as c
where custid not in (select o.custid
from sales.orders as o
where o.custid is not null);
隐式的排除就是直接使用not exists,会自动过滤掉表达式结算结果为unknown的,所以子查询中不用加过滤条件。使用not exists比not in要更安全。
select custid,companyname
from sales.customers as c
where custid not exists (select o.custid
from sales.orders as o);

来源:
原文:https://blog.csdn.net/qingdatiankong/article/details/77915015

运算符
算术运算符
+,-,*,/,%
比较运算符
主要是:>,<,=,>=,<=,<>,(!=,!>,!<)
最后三个运算符不是标准运算符。都可以使用<>来替代。
逻辑运算符
And,Or
如果对布尔表达式取反,使用NOT 运算符。
各运算符的优先级顺序
1.() parentheses
2. * (multiply),/ (division),%(modulo)
3.+(positive),-(negative)
4.=,>,<,<=,>=,<>(Comparsion operators)
5.not
6.and
7.or,between,like,in

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值