PostgreSQL - 表現式

こんにちは、未来のデータベース魔法使いさんたち!今日は、PostgreSQLの表現式の興味深い世界に飛び込みます。新しいことばかりでも心配しないでください;基本から始めて、段階的に進めていきます。このチュートリアルの終わりまでに、プロのように表現式を構築できるようになるでしょう!

PostgreSQL - Expressions

PostgreSQLにおける表現式とは?

具体的な内容に入る前に、まず表現式とは何かを理解しましょう。PostgreSQLでは、表現式は1つまたは複数の値、演算子、関数を組み合わせて1つの値に評価されるものです。レシピを思い浮かべてください:さまざまな材料(値)を様々な調理器具(演算子と関数)を使って混ぜて、美味しい料理(結果)を作るものです。

では、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は、布尔表現式を作成するための比較演算子も提供しています:

演算子 説明
= 等しい
<> or != 等しくない
< 小于
> 大于
<= 小于または等しい
>= 大于または等しい

例:

SELECT name, salary FROM employees WHERE salary > 50000;

このクエリは、給料が50,000ドル以上のすべての従業員を見つけます。まるで、「我々の高給取りは誰ですか?」と尋ねているようなものです。

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%の賃金UPを適用しています。素晴らしいことですね?

数学的関数

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;

このクエリは、合計金額を2桁に四捨五入して、財務が整然と見えるようにします。

PostgreSQL - 日付表現式

PostgreSQLにおける日付表現式は、日付と時間を操作し計算するものです。デジタルカレンダーと時計が合体したようなものです!

日付/時間関数

PostgreSQLは、日付と時間を操作するための多くの関数を提供しています。以下に一般的なものを挙げます:

関数 説明
CURRENT_DATE 現在の日付
CURRENT_TIME 現在の時間
CURRENT_TIMESTAMP 現在の日時
AGE(timestamp, timestamp) 2つのタイムスタンプの差を計算
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