SQL基础教程6(2)

谓词:函数中的一种,就是返回值为真值(TRUE/ FALSE/UNKNOWN)的函数。

=、<、>、<> 等比较运算符,其正式的名称就是比较谓词。

LIKE :字符串的部分一致查询

模式匹配:像这样不使用“=”来指定条件字符串,而以字符串中是否包含该条件(本例中是“包含 ddd”)的规则为基础的查询,其中的模式也就是前面提到的“规则”。

BETWEEN:范围查询

特点:结果中会包含临界值

IS NULL、IS NOT NULL :判断是否为NULL

IN:OR的简便用法,“IN( 值,……)”

-- 通过IN来指定多个进货单价进行查询
SELECT product_name, purchase_price
  FROM Product
 WHERE purchase_price IN (320, 500, 5000);

注:

1、无法选取出 NULL 数据

2、可以使用子查询作为其参数,子查询是从内层开始执行的

EXISTS,只有 1 个参数,该参数通常是一个关联子查询

谓词的作用就是“判断是否存在满足某种条件的记录”。 如果存在这样的记录就返回真(TRUE),如果不存在就返回假(FALSE)。 EXIST(存在)谓词的主语是“记录”。

EXIST 只关心记录是否存在

SELECT product_name, sale_price
  FROM Product AS P ①
 WHERE EXISTS (SELECT *
                 FROM ShopProduct AS SP ②
                WHERE SP.shop_id = '000C'
                  AND SP.product_id = P.product_id);

EXIST 只会判断是否存在满足子查询中 WHERE 子句指定的条件“商店编号(shop_id)为 '000C',商品(Product)表和商店商品(ShopProduct)表中商品编号(product_id)相同”的记录, 只有存在这样的记录时才返回真(TRUE)

通过条件“SP. product_id = P.product_id”将 Product 表和 ShopProduct 表进行了联接

  • 子查询中的SELECT *

可以把在 EXIST 的子查询中书写 SELECT * 当作 SQL 的一 种习惯。

  • IN

等价改写:将IN改写成EXISTS(性能优化)严格来说两者并不相同

但NOT IN 和 NOT EXISTS不等价(结合进阶教程)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

九号会弹钢琴啊

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值