PostgreSQL - 運算子:數據庫魔法的友好指南
你好,未來的數據庫魔法師們!今天,我們將踏上一段令人興奮的旅程,探索 PostgreSQL 運算子的世界。別擔心你對編程還是新手——我會成為你可靠的嚮導,我們將一步步地探索這個主題。到了這個教學的結尾,你會對自己所學到的知識感到驚訝!
運算子是什麼?
在我們深入之前,讓我們先來討論一下運算子是什麼。可以把運算子想像成特殊的符號,告訴 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