JSON関数のイントロダクション
メニューを表示するにはスワイプしてください
JSON(JavaScript Object Notation)は、軽量なデータ交換フォーマットであり、人間にも機械にも読み書きが容易な形式。現代のデータベースでは、半構造化データの保存やクエリ実行の重要性が高まっている。多くのアプリケーションでは、複雑なユーザープロファイルや設定、好みなどを柔軟な形式で記録しており、JSONデータ型を利用することで、こうした情報を1つのカラム内に直接保存できる。この方法により、データベーススキーマの進化や、従来のテーブル構造に収まらないデータの管理が容易になる。
12345678910111213141516-- Insert a new user with JSON profile data INSERT INTO user_profiles (user_id, profile_data) VALUES (6, '{ "age": 30, "interests": ["photography", "travel"], "address": { "street": "987 Elm St", "city": "Riverdale", "state": "OH", "zip": "43055" } }'); -- Select all user IDs and their profile data SELECT user_id, profile_data FROM user_profiles;
PostgreSQLでJSONデータを扱うには、JSONやJSONBカラム専用の関数を使用する。よく使われるPostgreSQLの関数には、次の3つがある。
jsonb_extract_path_text:指定したパスからJSONBオブジェクト内のスカラー値(文字列や数値など)を抽出。jsonb_extract_path:JSONBカラムから構造を保持したままJSONオブジェクトや配列を取得。jsonb_build_object:クエリ内のキーと値のペアから新しいJSONオブジェクトを構築。
これらの関数を使うことで、JSONドキュメント内の特定の値へのアクセス、ネストされたオブジェクトや配列の取得、リレーショナルデータから直接新しいJSONオブジェクトの生成が可能となる。
1234-- Extract the 'city' from the 'address' object within profile_data for user_id 1 using PostgreSQL JSONB functions SELECT jsonb_extract_path_text(profile_data::jsonb, 'address', 'city') AS city FROM user_profiles WHERE user_id = 1;
1. PostgreSQL で、指定したパスの JSONB オブジェクトから文字列や数値などのスカラー値を抽出する関数はどれですか?
2. PostgreSQL の関数 jsonb_extract_path は、JSONB カラムに対して使用した場合、何を返しますか?
3. クエリ内でキーと値のペアから新しい JSON オブジェクトを構築する PostgreSQL 関数はどれですか?
すべて明確でしたか?
フィードバックありがとうございます!
セクション 6. 章 1
AIに質問する
AIに質問する
何でも質問するか、提案された質問の1つを試してチャットを始めてください
セクション 6. 章 1