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