PostgreSQL - 運算子:數據庫魔法的友好指南

你好,未來的數據庫魔法師們!今天,我們將踏上一段令人興奮的旅程,探索 PostgreSQL 運算子的世界。別擔心你對編程還是新手——我會成為你可靠的嚮導,我們將一步步地探索這個主題。到了這個教學的結尾,你會對自己所學到的知識感到驚訝!

PostgreSQL - Operators

運算子是什麼?

在我們深入之前,讓我們先來討論一下運算子是什麼。可以把運算子想像成特殊的符號,告訴 PostgreSQL 執行特定的動作或比較。它們就像是數據庫世界的魔法杖——只需幾個字符,你就能讓強大的事情發生!

PostgreSQL 算術運算子

我們先從熟悉的事物開始——數學!PostgreSQL 有像你在學校學過的那樣的算術運算子。

基本算術運算子

這裡是一張基本算術運算子的表格:

運算子 描述 範例
+ 加法 5 + 3
- 減法 7 - 2
* 乘法 4 * 6
/ 除法 10 / 2
% 取模(餘數) 7 % 3

讓我們看看這些運算子在實際中的運作:

SELECT 5 + 3 AS 加法,
7 - 2 AS 減法,
4 * 6 AS 乘法,
10 / 2 AS 除法,
7 % 3 AS 取模;

這個查詢會給你:

加法 | 減法 | 乘法 | 除法 | 取模
------|------|------|------|------
8   |   5  |  24  |   5  |   1

這不是很酷嗎?我們只用一行就完成了五個不同的計算!

數字的樂趣

這裡有一個小故事幫助你記住這些運算子。想像你正在計劃一個派對:

  • 你邀请了 5 個朋友,但又有 3 個人現身(5 + 3 = 8 總共的客人)
  • 2 個人提前離開(8 - 2 = 6 還在的客人)
  • 你有 4 份披薩,每份切成 6 片(4 * 6 = 24 總共的片數)
  • 你將這些片數平等地分給 6 個客人(24 / 6 = 4 每人一片)
  • 還剩下一片(25 % 6 = 1 餘數)

PostgreSQL 比較運算子

現在,讓我們來看看比較運算子。這些用於比較值並返回 true 或 false。

比較運算子表格

運算子 描述 範例
= 等於 5 = 5
<> 不等 5 <> 3
< 小於 3 < 5
> 大於 5 > 3
<= 小於或等於 3 <= 3
>= 大於或等於 5 >= 5

讓我們在真實世界的場景中使用這些運算子。想像我們有一個產品表:

CREATE TABLE products (
id SERIAL PRIMARY KEY,
name VARCHAR(100),
price DECIMAL(10, 2),
stock INT
);

INSERT INTO products (name, price, stock) VALUES
('筆記本電腦', 999.99, 50),
('智慧手機', 599.99, 100),
('耳機', 79.99, 200);

SELECT name, price
FROM products
WHERE price > 500;

這個查詢會返回:

name    |  price
-----------|--------
筆記本電腦 | 999.99
智慧手機   | 599.99

在這裡,我們使用 '>' 運算子來找出價格超過 $500 的產品。這就像是在問,“展示給我看所有的貴重物品!”

PostgreSQL 邏輯運算子

邏輯運算子允許我們組合多個條件。它們就像是運算子世界的決策者。

邏輯運算子表格

運算子 描述 範例
AND 兩個條件都必须為真 a > 5 AND b < 10
OR 至少一個條件必須為真 a > 5 OR b < 10
NOT 反轉條件 NOT a = 5

讓我們在產品範例中使用這些運算子:

SELECT name, price, stock
FROM products
WHERE price < 600 AND stock > 150;

這個查詢會返回:

name    | price | stock
-----------|-------|------
耳機      | 79.99 |  200

我們在問,“展示給我看那些既價格低於 $600 又庫存超過 150 的產品。”這就像是在說,“展示給我看那些既便宜又充足的產品!”

PostgreSQL 位字符串運算子

現在,讓我們進入更先進的領域——位字符串運算子。這些運算子在位上操作,計算機中最小的數據單位。

位字符串運算子表格

運算子 描述 範例
& 按位與 B'1010' & B'1100'
按位或
# 按位異或 B'1010' # B'1100'
~ 按位非 ~ B'1010'
<< 按位左移 B'1010' << 1
>> 按位右移 B'1010' >> 1

這些可能看起來有點抽象,讓我們用一個例子來解釋:

SELECT
B'1010' & B'1100' AS 按位與,
B'1010' | B'1100' AS 按位或,
B'1010' # B'1100' AS 按位異或,
~ B'1010' AS 按位非,
B'1010' << 1 AS 左移,
B'1010' >> 1 AS 右移;

這會給你:

按位與 | 按位或 | 按位異或 | 按位非        | 左移  | 右移
-------|--------|----------|---------------|-------|------
1000 |    1110 |    0110  |  11110101     |  10100 |    101

把這些想像成位之間的秘密握手。它們在低級編程和數據操作中非常有用!

至此,我們已經穿越了 PostgreSQL 運算子的領地,從基本的算術到神秘的位操作。記住,熟能生巧,所以不要害怕在自己的查詢中嘗試這些運算子。在你還未意識到之前,你就會像專家一樣撰寫複雜的查詢了!

Credits: Image by storyset