SQL - 運算子

歡迎,未來的數據魔法師!今天,我們要深入 SQL 運算子的神奇世界。別擔心如果你之前從未寫過一行代碼——我們將從最基礎的知識開始,然後逐步學習。在這個教學結束時,你將能夠像專家一樣召喚數據!

SQL - Operators

什麼是 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 運算子優先級表,從最高到最低:

  1. 括號 ()
  2. 乘法/除法 (*, /)
  3. 加法/減法 (+, -)
  4. 比較運算子 (=, <>, <, >, <=, >=)
  5. NOT
  6. AND
  7. OR

讓我們看看這是如何工作的:

SELECT product_name, price, category
FROM products
WHERE category = 'Electronics' AND (price < 500 OR rating > 4);

在這個查詢中,SQL 將:

  1. 首先評估括號內的條件(price < 500 OR rating > 4)
  2. 然後將 AND 運算子與類別條件組合

這給我們所有低於 $500 或評價超過 4 的電子產品。

記住,如果你不確定或想顯式地控制操作順序,你總是可以使用括號。

就是这样,各位!你剛剛完成了 SQL 運算子的速成課程。有了這些工具,你已經走上了成為數據操作大師的道路。記住,熟練才能精通,所以不要害怕在你自己的查詢中嘗試這些運算子。快樂編程!

Credits: Image by storyset