Mysql谓词

谓词

你想成为幸福的人吗?但愿你首先学会吃得起苦。——屠格涅夫

学习重点

  • 谓词就是返回值为真值的函数

  • 掌握 LIKE 的三种使用方法(前方一致,中间一致,后方一致)

  • 需要注意的 BETWEEN 包含三个参数

  • 想要取得 NULL 数据的时候必须使用 IS NULL

  • 可以将子查询作为 IN 和 EXISTS 的参数

谓词

谓词就是满足特定条件的函数,该条件就是返回值是真值.对通常的函数来说,返回值有可能是数字,字符串,或者日期等等 但是谓词的返回值全都是真值(TRUE/FALSE/UNKNOWN) 这也是谓词和函数的最大区别

  • LIKE

  • BETWEEN

  • IS NULL, IS NOT NULL

  • IN

  • EXISTS

LIKE 谓词—字符串的部分一致查询

  • LIKE 查询也叫模糊查询

  • 字符串中部分一致 它分为前方一致,中间一致,后方一致三种类型

前方一致查询

  • 比如 dddaac 找到符合 ddd 的类型

SELECT * FROM sample WHERE strcol LIKE 'ddd%';

%代表 0 字符以上的任意字符串

中间一致查询

  • 比如 aaadddccc 找到中间符合 ddd 的类型

SELECT * FROM sample WHERE strcol LIKE '%ddd%';

后方一致查询

  • 比如 aaaddd 选取出字符串已’ddd’结尾的

SELECT * FROM sample WHERE strcol LIKE '%ddd'

下划线 任意 1 个字符

  • 我们还可以用_(下划线)来代替%,与%不同的是它代表了任意 1 个字符

  • 选取出 abc+任意 2 个字符


SELECT * FROM sample WHERE strcol LIKE 'abc__'

BETWEEN 谓词 — 范围查询

  • 使用 BETWEEN 可以进行范围查询

  • 语法


SELECT product_name,sale_price FROM Product WHERE sale_price BETWEEN 100 AND 1000;

这样它查询出的结果就是 100 到 1000 的结果 其中包括 100 和 1000

如果不想要临界值可以用<和>


SELECT product_name,sale_price FROM Product WHERE sale_price>100 AND sale_price < 1000;

IS NULL, IS NOT NULL —判断是否为 NULL

  • 为了选出某些值为 NULL 的列的数据,不能使用 = 而只能使用特定的谓词 IS NULL

SELECT product_name,purchase_price FROM product WHERE purchase_price IS NULL

这样就找出来了价格为 null 的

相反的


SELECT product_name,purchase_price FROM product WHERE purchase_price IS NOT NULL

IN 谓词 —OR 的简便用法

  • OR 的用法

SELECT product_name, purchase_price
FROM Product
WHERE purchase_price = 320
OR purchase_price = 500
OR purchase_price = 5000;
  • IN 的用法,在值里面选

SELECT product_name, purchase_price
FROM Product
WHERE purchase_price IN (320, 500, 5000);

特别注意的就是 IN 和 NOT IN 是无法选出 NULL 的数据

  • 子查询里面使用 IN

SELECT product_name, sale_price
FROM Product
WHERE product_id IN (SELECT product_id
FROM ShopProduct
WHERE shop_id = '000C');

文章作者: 雾烟云
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 雾烟云 !
  目录