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