SQL - 运算符
欢迎,未来的数据库巫师们!今天,我们将深入到SQL运算符的神奇世界。如果你以前从未编写过一行代码,也不用担心——我们将从最基础的内容开始,逐步学习。在本教程结束时,你将能够像其他人一样熟练地操作数据!
什么是SQL运算符?
让我们从基础开始。SQL运算符就像是你的数据库工具箱中的特殊工具。它帮助你对数据进行操作,无论是比较值、做数学运算还是组合信息。可以把运算符想象成SQL句子中的动词——它们让事情发生!
例如,当你想说“我想要所有年龄大于30岁的客户”时,“大于”部分就是一个运算符。它在告诉数据库如何过滤你的数据。
SQL中的运算符类型
现在,让我们探索SQL中不同类型的运算符。我们将它们分类并提供每个类别的示例。系好安全带,因为我们即将在运算符游乐园中坐上过山车!
1. 算术运算符
这些运算符帮助你对数据进行数学运算。下面是算术运算符的表格:
运算符 | 描述 | 示例 |
---|---|---|
+ | 加法 | 5 + 3 = 8 |
- | 减法 | 7 - 2 = 5 |
* | 乘法 | 4 * 6 = 24 |
/ | 除法 | 15 / 3 = 5 |
% | 取模(余数) | 17 % 5 = 2 |
让我们看看它们是如何工作的:
SELECT product_name, price, price * 1.1 AS price_with_tax
FROM products;
在这个例子中,我们正在计算包含10%税的新价格。*
运算符将原始价格乘以1.1。
2. 比较运算符
这些运算符帮助你比较值。它们对于过滤数据超级有用。下面是比较运算符的表格:
运算符 | 描述 | 示例 |
---|---|---|
= | 等于 | age = 30 |
<> | 不等于 | status <> 'Completed' |
> | 大于 | price > 100 |
< | 小于 | quantity < 5 |
>= | 大于或等于 | rating >= 4 |
<= | 小于或等于 | discount <= 0.2 |
让我们在查询中使用它们:
SELECT customer_name, age
FROM customers
WHERE age > 30 AND status = 'Active';
这个查询找到所有年龄超过30岁的活跃客户。>
运算符检查年龄是否超过30岁,而=
运算符确保状态正是 'Active'。
3. 逻辑运算符
逻辑运算符帮助你组合多个条件。它们就像是把你复杂查询粘合在一起的胶水。下面是逻辑运算符的表格:
运算符 | 描述 |
---|---|
AND | 如果两个条件都为真,则为真 |
OR | 如果任一条件为真,则为真 |
NOT | 反转条件的结果 |
让我们看看如何使用它们:
SELECT product_name, price, category
FROM products
WHERE (category = 'Electronics' OR category = 'Computers')
AND price < 1000
AND NOT discontinued;
这个查询找到属于Electronics或Computers类别、价格低于1000美元且未停产的产品。就像告诉数据库:“给我所有既酷炫又不会破产,且仍然可用的 gadgets!”
4. LIKE 运算符
LIKE 运算符是你在文本数据中搜索模式时的最佳朋友。它使用通配符来匹配字符串的一部分:
- % : 匹配任何数量的字符
- _ : 匹配单个字符
下面是一个示例:
SELECT customer_name, email
FROM customers
WHERE email LIKE '%@gmail.com';
这个查询找到所有使用Gmail邮箱的客户。%
通配符匹配 '@gmail.com' 之前的任何字符。
5. IN 运算符
IN 运算符是一种简写方式,用于组合多个 OR 条件。当你需要在一系列值中查找匹配项时,它非常方便。
SELECT product_name, category
FROM products
WHERE category IN ('Books', 'Movies', 'Music');
这个查询检索所有属于Books、Movies或Music类别的产品。这比编写 category = 'Books' OR category = 'Movies' OR category = 'Music'
要干净得多。
6. BETWEEN 运算符
BETWEEN 运算符帮助你找到范围内的值。它是包含边界值的。
SELECT order_id, order_date, total_amount
FROM orders
WHERE order_date BETWEEN '2023-01-01' AND '2023-12-31';
这个查询找到所有在2023年下的订单。就像说:“展示所有从新年第一天到新年除夕之间的内容!”
SQL 运算符优先级
现在我们已经见到了这些出色的运算符,当你在一个查询中使用多个运算符时,了解SQL如何决定先评估哪些运算符是很重要的。这被称为运算符优先级。
下面是一个简化的SQL运算符优先级表格,从最高到最低:
- 括号 ()
- 乘法/除法 (*, /)
- 加法/减法 (+, -)
- 比较运算符 (=, <>, <, >, <=, >=)
- NOT
- AND
- OR
让我们看看它是如何工作的:
SELECT product_name, price, category
FROM products
WHERE category = 'Electronics' AND (price < 500 OR rating > 4);
在这个查询中,SQL将会:
- 首先评估括号内的条件(price < 500 OR rating > 4)
- 然后将 AND 运算符与类别条件结合
这会给我们所有价格低于500美元或评分超过4的电子产品。
记住,如果你不确定或者想覆盖默认的优先级,你总是可以使用括号来显式控制运算的顺序。
那么,各位,以上就是关于SQL运算符的速成课程。有了这些工具,你离成为数据操作大师又近了一步。记住,熟能生巧,所以不要害怕在你们自己的查询中尝试这些运算符。快乐编码!
Credits: Image by storyset