PostgreSQLでブール値フィールドを制覇!NULL、True、Falseの探索と操作を完全網羅
PostgreSQL でブール値フィールド (NULL、True、False) を確認する方法
3つのシナリオ を取り上げます。
- NULL 値のみを取得する
- True または False 値のみを取得する
- NULL、True、False の値すべてを取得する
使用するツール
- PostgreSQL 9.1 またはそれ以降
- データベースとテーブルを含むサンプルデータ
ステップ 1:データベース接続
まず、PostgreSQL データベースに接続する必要があります。コマンドラインツール psql
を使用して、次のように接続できます。
psql -d postgres -U username
上記のコマンドで、postgres
はデータベースの名前、username
は PostgreSQL ユーザー名に置き換えます。
ステップ 2:ブール値フィールドの確認
以下のいずれかの方法を使用して、ブール値フィールドを確認できます。
シナリオ 1:NULL 値のみを取得する
SELECT * FROM table_name WHERE boolean_column IS NULL;
このクエリは、boolean_column
が NULL であるすべての行を返します。
SELECT * FROM table_name WHERE boolean_column = TRUE OR boolean_column = FALSE;
SELECT * FROM table_name;
このクエリは、NULL、True、False のすべての値を含む、table_name
テーブルのすべての行を返します。
IS NULL
演算子は、NULL 値かどうかを厳密にチェックします。=
演算子は、True または False の値かどうかを厳密にチェックします。- 上記のクエリを組み合わせて、より複雑な条件を構築できます。
例
SELECT * FROM table_name WHERE boolean_column IS NULL OR boolean_column = TRUE;
- ブール値列を
CREATE TABLE
ステートメントで作成する - ブール値にさまざまな値を挿入する
WHERE
句を使用してブール値フィールドをクエリするUPDATE
ステートメントを使用してブール値フィールドを更新するDELETE
ステートメントを使用してブール値フィールドを持つレコードを削除する
psql -d postgres -U username
ステップ 2:サンプルテーブルの作成
次のクエリを使用して、サンプルテーブルを作成します。
CREATE TABLE boolean_table (
id SERIAL PRIMARY KEY,
active BOOLEAN NOT NULL DEFAULT TRUE
);
このクエリは、boolean_table
という名前のテーブルを作成します。このテーブルには、id
という名前のシリアル主キー列と、active
という名前のブール値列が含まれます。 active
列はデフォルトで TRUE
に設定されています。
ステップ 3:データ挿入
INSERT INTO boolean_table (active)
VALUES (TRUE), (FALSE), (NULL);
このクエリは、boolean_table
テーブルに 3 つの行を挿入します。最初の行の active
列は TRUE
、2 番目の行は FALSE
、3 番目の行は NULL
になります。
ステップ 4:WHERE 句を使用したブール値フィールドのクエリ
次のクエリを使用して、active
列が TRUE
のレコードをすべて選択します。
SELECT * FROM boolean_table WHERE active = TRUE;
このクエリは、id
が 1 のレコードを返します。
次のクエリを使用して、id
が 3 のレコードの active
列を FALSE
に更新します。
UPDATE boolean_table
SET active = FALSE
WHERE id = 3;
DELETE FROM boolean_table
WHERE active IS NULL;
SELECT
id,
active,
CASE WHEN active = TRUE THEN 'アクティブ'
WHEN active = FALSE THEN '非アクティブ'
ELSE 'NULL'
END AS active_status
FROM boolean_table;
このクエリは、active
列の値に基づいて新しい列 active_status
を作成します。 active_status
列には、アクティブ
、非アクティブ
、または NULL
の値が含まれます。
論理演算子
SELECT *
FROM boolean_table
WHERE active AND some_condition = TRUE;
このクエリは、active
列が TRUE
であり、some_condition
が TRUE
であるすべての行を返します。
COALESCE 関数
SELECT
id,
active,
COALESCE(active, FALSE) AS active_or_false
FROM boolean_table;
このクエリは、active
列の値が NULL
の場合は FALSE
を返します。
NULLIF 関数
SELECT
id,
active,
NULLIF(active, FALSE) AS active_not_false
FROM boolean_table;
ブール値演算子
SELECT *
FROM boolean_table
WHERE NOT active;
これらの方法はすべて、PostgreSQL でブール値フィールドを確認するために使用できます。どの方法を使用するかは、特定のニーズと要件によって異なります。
- PostgreSQL には、ブール値フィールドを操作するためのさまざまな組み込み関数と演算子が用意されています。
- 上記の例はほんの一例であり、ニーズに合わせてさまざまな方法を組み合わせることができます。
postgresql postgresql-9.1 sql-null