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