シンプルなJSONオブジェクトをSQL INSERT文に変換する

フラットなJSONオブジェクトを単一のSQL INSERT文に変換する方法を学びます。カラムマッピング、値のクォート、文字列・数値・真偽値の基本的な型処理を解説します。

Basic INSERT

詳細な説明

JSONからSQL INSERTへ

最も基本的なJSON-to-SQL変換は、フラットなJSONオブジェクトをINSERT INTO文に変換することです。各キーがカラム名になり、各値は型に応じてクォートされたリテラルまたはクォートなしのリテラルになります。

JSONの例

{
  "id": 1,
  "name": "Alice",
  "email": "alice@example.com",
  "age": 30,
  "active": true
}

生成されるSQL

INSERT INTO users (id, name, email, age, active)
VALUES (1, 'Alice', 'alice@example.com', 30, TRUE);

型マッピングルール

JSON型 SQL表現
文字列 シングルクォートリテラル('value'
数値(整数) クォートなし数値リテラル
数値(小数) クォートなし数値リテラル
真偽値 TRUE / FALSE(MySQLでは1 / 0
null NULL

カラム命名

JSONキーはそのままカラム名として使用されます。キーにスペースや予約語が含まれる場合、ターゲットデータベースの方言に応じてダブルクォート("column name")またはバックティック(\column name``)でラップされます。

文字列エスケープ

文字列値内のシングルクォートはエスケープが必要です。標準的なSQLのアプローチは、シングルクォートを二重にすることです:O'Brien'O''Brien'になります。これによりSQLインジェクションと構文エラーを防ぎます。

なぜJSONをSQLに変換するのか?

多くのワークフローでは、JSON形式のデータ(API、設定ファイル、エクスポートから)を受け取り、リレーショナルデータベースに永続化する必要があります。手動でINSERT文を書くのは面倒でエラーが起きやすいです。自動変換により、一貫したクォート、正確なエスケープ、適切な型処理が保証されます。

ユースケース

NoSQLデータベースやREST APIレスポンスからリレーショナルデータベースにデータを移行する際、個別のJSONレコードを行として挿入する必要があります。自動変換により手動のSQL記述が不要になり、クォートやエスケープのエラーリスクが軽減されます。

試してみる — JSON to SQL

フルツールを開く