SQL - BETWEEN 操作符

你好啊,未来的 SQL 大师们!今天,我们将踏上一段激动人心的旅程,探索 BETWEEN 操作符的世界。作为你友好的计算机科学老师,我将会用大量的例子和一点幽默来引导你完成这次冒险。所以,拿起你的虚拟魔杖(键盘),让我们开始吧!

SQL - BETWEEN Operator

SQL BETWEEN 操作符

想象一下,你正在组织一个派对,你想邀请年龄在某个范围内的朋友。这正是 SQL 中的 BETWEEN 操作符所做的——它帮助我们选择特定范围内的数据。让我们深入研究!

基本语法

SELECT column_name(s)
FROM table_name
WHERE column_name BETWEEN value1 AND value2;

这看起来可能有点吓人,但别担心!我们会通过一些例子来分解它。

示例 1:选择价格范围内的产品

假设我们在线商店数据库中有一个名为 "Products" 的表。我们想要找到所有价格在 50 美元到 100 美元之间的产品。

SELECT * FROM Products
WHERE Price BETWEEN 50 AND 100;

这个查询将返回 Products 表中所有价格在 50 美元到 100 美元之间的记录(包括边界值)。就像在问,“展示给我所有价格至少为 50 美元但不超过 100 美元的产品。”

示例 2:日期范围

BETWEEN 操作符不仅适用于数字,对于日期也很有用!假设我们有一个 "Orders" 表,想要找到 2023 年下的所有订单。

SELECT * FROM Orders
WHERE OrderDate BETWEEN '2023-01-01' AND '2023-12-31';

这个查询检索所有在 2023 年 1 月 1 日至 2023 年 12 月 31 日之间的订单。就像在问数据库,“我们在 2023 年收到了哪些订单?”

BETWEEN 操作符与 IN 操作符结合

现在,让我们来点刺激的!我们可以将 BETWEEN 与 IN 操作符结合起来进行更复杂的查询。想象一下,你为派对创建了一个包含特定年龄范围和名字的宾客名单。

示例 3:结合 BETWEEN 和 IN

假设我们想要找到年龄在 25 到 35 岁之间,并且在 IT 或 HR 部门工作的员工。

SELECT * FROM Employees
WHERE (Age BETWEEN 25 AND 35)
AND Department IN ('IT', 'HR');

这个查询就像在说,“展示给我所有年龄在 25 到 35 岁之间,且在 IT 或 HR 部门工作的员工。”这是缩小搜索条件的好方法。

BETWEEN 操作符与 UPDATE 语句结合

有时,我们需要更新特定范围内的数据。让我们看看如何在 UPDATE 语句中使用 BETWEEN。

示例 4:更新薪水

想象一下,我们想要给所有收入在 50,000 美元到 70,000 美元之间的员工加薪 10%。

UPDATE Employees
SET Salary = Salary * 1.10
WHERE Salary BETWEEN 50000 AND 70000;

这个查询将为所有在指定薪水范围内的员工增加 10% 的薪水。就像给中等收入的员工发放奖金!

BETWEEN 操作符与 DELETE 语句结合

BETWEEN 操作符还可以与 DELETE 语句结合使用,当你需要删除特定范围内的数据时。

示例 5:删除旧记录

假设我们想要删除所有 2020 年的订单以清理数据库。

DELETE FROM Orders
WHERE OrderDate BETWEEN '2020-01-01' AND '2020-12-31';

这个查询将删除所有在 2020 年下的订单。就像在为数据库进行数字春季大扫除!

NOT BETWEEN 操作符

那么,如果我们想要找到特定范围之外的数据呢?这时 NOT BETWEEN 操作符就派上用场了。

示例 6:查找价格范围外的产品

让我们找到所有价格低于 20 美元或高于 100 美元的产品。

SELECT * FROM Products
WHERE Price NOT BETWEEN 20 AND 100;

这个查询返回所有价格低于 20 美元或高于 100 美元的产品。就像在问,“展示给我预算友好和奢侈品,但不要中间价位的。”

NOT BETWEEN 操作符与 IN 结合

最后,让我们将 NOT BETWEEN 与 IN 操作符结合起来进行更精确的查询。

示例 7:复杂的排除查询

假设我们想要找到年龄不在 30 到 50 岁之间,且不在销售或市场部门的员工。

SELECT * FROM Employees
WHERE (Age NOT BETWEEN 30 AND 50)
AND Department NOT IN ('Sales', 'Marketing');

这个查询找到年龄小于 30 或大于 50,且不在销售或市场部门的员工。就像在说,“展示给我年轻和经验丰富的员工,但他们不在我们面向客户的部门。”

BETWEEN 操作符方法总结

下面是一个方便的表格,总结了我们可以使用 BETWEEN 操作符的不同方式:

方法 描述 示例
BETWEEN 选择给定范围内的值 WHERE Price BETWEEN 50 AND 100
BETWEEN 与日期 选择给定日期范围内的值 WHERE OrderDate BETWEEN '2023-01-01' AND '2023-12-31'
BETWEEN 与 IN 结合范围和列表选择 WHERE (Age BETWEEN 25 AND 35) AND Department IN ('IT', 'HR')
BETWEEN 在 UPDATE 中 更新范围内的值 UPDATE Employees SET Salary = Salary * 1.10 WHERE Salary BETWEEN 50000 AND 70000
BETWEEN 在 DELETE 中 删除范围内的记录 DELETE FROM Orders WHERE OrderDate BETWEEN '2020-01-01' AND '2020-12-31'
NOT BETWEEN 选择给定范围之外的值 WHERE Price NOT BETWEEN 20 AND 100
NOT BETWEEN 与 IN 结合排除范围和列表 WHERE (Age NOT BETWEEN 30 AND 50) AND Department NOT IN ('Sales', 'Marketing')

就这样,朋友们!我们已经穿越了 BETWEEN 操作符的土地,从基本选择到复杂查询。记住,熟能生巧,所以不要害怕在你的数据集上尝试这些查询。快乐 SQL,愿你的查询总是返回你想要的结果!

Credits: Image by storyset