高级数据过滤

目录

组合Where子句

AND 操作符

OR 操作符

AND 和 OR 组合使用

IN 操作符

NOT 操作符

LIKE 操作符

百分号(%)通配符

下划线(_)通配符


本篇文章内容的前置知识为过滤数据,如果不了解,可点击链接学习

过滤数据(使用 SELECT + WHERE)

组合Where子句

         之前所讲的 WHERE 子句在过滤数据时使用的都是单一的条件。为了进行更强的过滤控制,SQL 允许给出多个 WHERE 子句。这些子句有两种使用方式,即以 AND 子句或 OR 子句的方式使用。

AND 操作符

AND 操作符用于组合多个条件,要求所有条件都成立时才会返回记录。例如:

SELECT vend_id, prod_price, prod_name
FROM products
WHERE vend_id = 100 AND prod_price <= 100;

该查询会返回 vend_id 为 100 且 prod_price 小于或等于 100 的产品。

OR 操作符

OR 操作符用于表示多个条件之间只要有一个成立即可。例如:

SELECT prod_name, vend_id
FROM products
WHERE vend_id = 100 OR vend_id = 101;

该查询会返回 vend_id 为 100 或 101 的所有产品,无论其他条件如何。

AND 和 OR 组合使用

在 SQL 中,AND 和 OR 可以组合使用。当这两者一起使用时,AND 的优先级更高,所以 SQL 在处理时会先处理 AND 操作符,除非使用括号改变优先级。例如:

SELECT prod_name, prod_price, vend_id
FROM products
WHERE vend_id = 100 OR vend_id = 101 AND prod_price >= 100;

该查询返回满足以下任一条件的产品:
vend_id 为 100(无论价格如何)或 vend_id 为 101 且 prod_price 大于等于 100。

SELECT prod_name, prod_price, vend_id
FROM products
WHERE (vend_id = 100 OR vend_id = 101) AND prod_price >= 100;

该查询返回 供应商为 100 或 101 且 价格大于等于 100 的产品。

IN 操作符

IN 操作符是多个 OR 条件的简写,它可以使查询更加简洁。例如:

SELECT prod_name, vend_id
FROM products
WHERE vend_id IN (100, 101);

相当于:

SELECT prod_name, vend_id
FROM products
WHERE vend_id = 100 OR vend_id = 101;

 IN 操作符的优先级高于 OR,低于 AND

NOT 操作符

NOT 操作符用于否定条件,返回不符合指定条件的记录。NOT 放在被否定的条件前。

SELECT prod_name, vend_id
FROM products
WHERE NOT vend_id = 100;

该查询会返回所有 vend_id 不等于 100 的产品。

SELECT * 
FROM products
WHERE NOT (vend_id IN (100, 101));

该查询会返回 vend_id 不在 100 和 101 中的产品。

LIKE 操作符

LIKE 操作符用于 SQL 查询中进行模式匹配。与直接使用精确值的比较不同,LIKE 允许使用通配符来查找与模式匹配的记录。

百分号(%)通配符

百分号 % 用于匹配任意数量的字符(包括 0 个字符)

SELECT prod_id, prod_name
FROM products
WHERE prod_name LIKE '无线%';

该查询将返回所有以 "无线" 开头的产品名称。

SELECT prod_id, prod_name
FROM products
WHERE prod_name LIKE '%电脑';

该查询将返回所有以 "电脑" 结尾的产品名称。

SELECT prod_id, prod_name
FROM products
WHERE prod_name LIKE '%电%';

该查询将返回产品名称中包含 “电” 字 的产品。

下划线(_)通配符

下划线 _ 用于匹配单个字符。

SELECT prod_price, prod_name
FROM products
WHERE prod_price LIKE '_99';

该查询将返回产品价格中任意一个数字后跟 99 的产品,比如 299,399


尚未完结,可点击链接跳转下一篇文章

创建和操纵表与约束-CSDN博客

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值