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,而 =
運算子確保狀態 exactly 為 '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 且未停產的產品。這就像告訴數據庫,「給我所有不會讓你破產且仍然可用的酷炫小工具!」
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