PostgreSQL - 表達式

你好,未來的數據庫大師!今天,我們將要深入探索 PostgreSQL 表達式的迷人世界。別擔心如果你是新手;我們會從基礎開始,逐步提升。在本教程結束時,你將能像專業人士一樣編寫表達式!

PostgreSQL - Expressions

PostgreSQL 中的表達式是什麼?

在我們深入細節之前,讓我們先了解表達式是什麼。在 PostgreSQL 中,表達式是一個或多個值、運算符和函數的組合,其計算結果為單一值。把它想像成一個食譜:你將不同的食材(值)混合使用各種工具(運算符和函數)來創造一道美味的佳肴(結果)。

現在,讓我們探討 PostgreSQL 中的不同類型的表達式。

PostgreSQL - 布爾表達式

布爾表達式就像你考試中的是非題。它們計算結果為 TRUE 或 FALSE。當你想要過濾數據或在數據庫查詢中做出決策時,這些表達式非常有用。

基本布爾運算符

這裡是 PostgreSQL 中常見的布爾運算符表格:

運算符 描述 示例
AND 如果兩個條件都為真,則返回 TRUE a AND b
OR 如果至少一個條件為真,則返回 TRUE a OR b
NOT 將結果否定 NOT a

讓我們看看這些運算符是如何工作的:

SELECT * FROM students WHERE age >= 18 AND grade = 'A';

這個查詢選擇所有年齡在 18 歲或以上且成績為 'A' 的學生。這就像說:"給我顯示所有成年優秀學生!"

SELECT * FROM products WHERE category = 'Electronics' OR price > 1000;

這個查詢查找所有屬於 'Electronics' 類別或價格超過 1000 美元的产品。這就像問:"我們有哪些高端或科技產品?"

比較運算符

PostgreSQL 也提供了用於創建布爾表達式的比較運算符:

運算符 描述
= 等於
<> 或 != 不等於
< 小於
> 大於
<= 小於或等於
>= 大於或等於

範例:

SELECT name, salary FROM employees WHERE salary > 50000;

這個查詢找到所有薪資超過 50000 美元的員工。這就像問人事部:"我們有哪些高收入者?"

PostgreSQL - 數字表達式

PostgreSQL 中的數字表達式涉及數學運算。它們就像你學校時解決的數學問題,現在它們正在幫助你處理數據庫中的數字!

算術運算符

這裡是基本的算術運算符:

運算符 描述 示例
+ 加法 a + b
- 減法 a - b
* 乘法 a * b
/ 除法 a / b
% 取模(餘數) a % b
^ 乘方 a ^ b

讓我們在以下查詢中使用它們:

SELECT product_name, price, price * 0.9 AS discounted_price
FROM products;

這個查詢計算所有产品的 10% 折扣。這就像是一位慷慨的店主進行減價銷售!

SELECT employee_name, salary, salary + (salary * 0.05) AS new_salary
FROM employees;

在這裡,我們給每個員工增加 5% 的薪水。這不是很棒嗎?

數學函數

PostgreSQL 也提供了多種數學函數。以下是一些:

函數 描述
ABS(n) 絕對值
ROUND(n, m) 四舍五入到 m 位小數
POWER(x, y) x 的 y 次方
SQRT(n) 平方根

範例:

SELECT order_id, total_amount, ROUND(total_amount, 2) AS rounded_total
FROM orders;

這個查詢將總金額四舍五入到兩位小數,確保我們的財務看起來整潔有序。

PostgreSQL - 日期表達式

PostgreSQL 中的日期表達式讓你可以操作和計算日期和時間。它們就像你的數字日曆和時鐘合而為一!

日期/時間函數

PostgreSQL 提供了許多處理日期和時間的函數。以下是一些常見的:

函數 描述
CURRENT_DATE 當前日期
CURRENT_TIME 當前時間
CURRENT_TIMESTAMP 當前日期和時間
AGE(timestamp, timestamp) 計算兩個時間戳之間的差異
DATE_PART(text, timestamp) 獲取日期/時間值的子字段

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

SELECT username, registration_date,
AGE(CURRENT_DATE, registration_date) AS account_age
FROM users;

這個查詢計算每個用戶註冊多長時間。這就像檢查每個賬戶的"年齡"!

SELECT event_name, event_date,
DATE_PART('day', event_date) AS day_of_month
FROM events;

在這裡,我們從每個活動日期中提取月份中的日子。這對於組織活動非常有用!

間隔算術

PostgreSQL 允許你對日期和間隔進行算術運算。間隔表示一段時間。

SELECT order_date,
order_date + INTERVAL '7 days' AS expected_delivery_date
FROM orders;

這個查詢計算訂單日期後 7 天的預計交付日期。這就像物流經理計劃所有交付一樣!

好了,各位!我們已經穿越了 PostgreSQL 表達式的領地,從布爾邏輯到數字計算到時間旅行(好吧,有點像)。記住,熟能生巧,所以不要害怕在您自己的數據庫遊樂場中嘗試這些表達式。快樂查詢!

Credits: Image by storyset