SQL 中的谓词

本文详细介绍了SQL中的谓词概念,包括比较谓词、LIKE谓词、BETWEEN谓词、IN谓词、EXISTS谓词和ISNULL谓词。谓词用于WHERE和HAVING子句的搜索条件,以及联接条件等,帮助查询数据。例如,LIKE用于模式匹配,BETWEEN用于定义范围,EXISTS检查子查询是否存在返回行,ISNULL则检测是否为NULL值。
摘要由CSDN通过智能技术生成

什么是谓词?

谓词只是一个计算结果为 TRUE、FALSE 或 UNKNOWN 的表达式。谓词通常用于 WHERE 和 HAVING 子句的搜索条件中、FROM 子句的联接条件以及需要布尔值的查询的任何其他部分中。

谓词有多种类型,包括:

  • 比较
  • LIKE
  • BETWEEN
  • IN
  • EXISTS
  • IS NULL (/INTEGER/DECIMAL/FLOAT...)

在本文的其余部分,我们将研究上述谓词类型的几个示例。

比较谓词

每当我们在表达式中使用比较运算符时,例如 WHERE employee_salary > 100000,我们都在构造一个计算结果为 TRUE、FALSE 或 UNKNOWN 的谓词。比较运算符包括:

  • = 等于
  • > 大于
  • < 少于
  • >= 大于或等于
  • <= 少于或等于
  • <> 不等于

因此,比较谓词的形式为:

expression_1 comparison_operator expression_2

在比较谓词中,expression2 也可以是子查询。如果子查询没有返回任何行,则比较谓词的计算结果为 FALSE。

LIKE 谓词

在 SQL 中,第一的模式匹配谓词是 LIKE 运算符,因为它将列值与指定的模式进行比较。LIKE 适用于任何字符或日期数据类型。当我们在Navicat Premium 16中运行查询时,以下是一个示例:

BETWEEN 谓词

BETWEEN 运算符指定一个范围,该范围确定限定值的下限和上限。例如,在谓词 income BETWEEN 5000 AND 20000 中,所选数据的范围是大于或等于 5000 且小于或等于 20000。BETWEEN 运算符可用于数字、文本和日期数据类型。以下是一个示例:

IN 谓词

IN 运算符允许指定用于查询搜索的两个或多个表达式。如果相应列的值等于 IN 谓词指定的其中一个表达式,则条件的结果为 TRUE:

EXISTS 谓词

EXISTS 谓词接受子查询作为参数。如果子查询返回一行或多行,则返回 TRUE。如果子查询返回零行,则返回 FALSE。

以下是一个示例:

IS NULL 谓词

使用 IS NULL 来确定表达式是否为 NULL,因为你无法使用 = 比较运算符测试 NULL。当应用于行值表达式时,所有元素都必须测试相同。

IS NULL 谓词的形式为:

IS [NOT] NULL

例如,如果 x 为 NULL,则表达式 x IS NULL 为 TRUE。

当表达式为 BOOLEAN 类型时,IS UNKNOWN 是 IS NULL 的同义词。

以下是的查询使用 IS NOT NULL 谓词来获取所有姓氏为非 NULL 值的演员:

总结

在本文中,我们中断了定期的文章,为你带来关于 SQL 谓词的重要课程。谓词通常用于 WHERE 和 HAVING 子句的搜索条件中、FROM 子句的联接条件中。它是计算结果为 TRUE、FALSE 或 UNKNOWN 的表达式。在下周的“常见的 SQL 查询错误”系列中,谓词将再出现。

如果你想试用最新的 Navicat 16 for MySQL,你可以在这里下载免费的 14 天全功能试用版。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值