Menu

JSON to SQL (CREATE TABLE + INSERT): PostgreSQL, MySQL, SQLite Guide

Convert JSON arrays into SQL you can actually run. Generate CREATE TABLE + INSERT statements with a dialect selector for PostgreSQL, MySQL, and SQLite—right in your browser.

If you’ve ever tried to move a JSON dataset into a database, you’ve probably hit the same wall:

  • You can parse JSON easily…
  • But you still need a table schema (types, columns, constraints)
  • And you need INSERT statements that match your database

That’s exactly what our JSON to SQL converter is for: paste JSON, choose a dialect (PostgreSQL / MySQL / SQLite), and get SQL you can run—including CREATE TABLE + INSERT.

What this JSON to SQL tool generates

Given a JSON object or an array of objects, the tool generates:

  1. CREATE TABLE — columns inferred from your JSON
  2. INSERT INTO ... VALUES — rows inserted in the same column order

It also supports two important UX features that make the output practical:

  • Dialect selector: PostgreSQL / MySQL / SQLite
  • Column order selector: keep original JSON key order, or sort A → Z

Quick example: JSON → SQL in 10 seconds

Input JSON

json[
  {
    "id": 1,
    "name": "Alice",
    "email": "[email protected]",
    "active": true,
    "age": 28,
    "meta": { "plan": "pro", "region": "US" }
  },
  {
    "id": 2,
    "name": "Bob",
    "email": "[email protected]",
    "active": false,
    "age": 31,
    "meta": { "plan": "free", "region": "CN" }
  }
]

Output (PostgreSQL)

sql-- Dialect: postgres
CREATE TABLE "data" (
  "id" INTEGER NOT NULL PRIMARY KEY,
  "name" TEXT,
  "email" TEXT,
  "active" BOOLEAN,
  "age" INTEGER,
  "meta" JSONB
);

INSERT INTO "data" ("id", "name", "email", "active", "age", "meta") VALUES
(1, 'Alice', '[email protected]', TRUE, 28, '{"plan":"pro","region":"US"}'),
(2, 'Bob', '[email protected]', FALSE, 31, '{"plan":"free","region":"CN"}');

Notice two deliberate choices:

  • id becomes NOT NULL PRIMARY KEY when it looks like an integer id
  • meta becomes JSONB in Postgres (fast + indexable)

Step-by-step: how to use the JSON to SQL converter

  1. Open JSON to SQL
  2. Paste your JSON on the left (or click Sample)
  3. Choose your database dialect on the right:

- PostgreSQL (default) - MySQL - SQLite

  1. (Optional) Choose Columns:

- Original: preserves key appearance order (more readable) - A → Z: stable ordering for diffs and automation

  1. Click Copy or Download

Dialects: why this matters (and what changes)

SQL is not truly “one size fits all”. The same JSON can require different SQL depending on your target database.

PostgreSQL

Best default for structured imports:

  • Uses "identifier" quoting
  • Supports real BOOLEAN types
  • Stores objects/arrays as JSONB

MySQL

Great if your destination is MySQL/MariaDB:

  • Uses backticks: ` identifier `
  • Uses JSON type for nested objects/arrays
  • Uses compatible boolean literals (TRUE / FALSE)

SQLite

Perfect for local scripts, quick prototypes, and offline work:

  • Uses "identifier" quoting
  • No native JSON column type → stores JSON as TEXT
  • Booleans are typically stored as 1/0

What about escaping / special characters?

The generator escapes SQL strings using the most common rule: single quotes are doubled.

  • O'Reilly'O''Reilly'

For nested objects/arrays, values are stored as JSON strings inside SQL text.

If your data includes lots of backslashes/newlines/emojis, this approach still works for most cases, but if you’re importing production data at scale, consider using a database-native bulk import (COPY/LOAD DATA) after validating your dataset.

When to use JSON → SQL vs JSON → CSV

If your goal is quickly load data into a database table, JSON → SQL is ideal.

If your goal is manual review / spreadsheet workflow, consider JSON to CSV or JSON Formatter first.

Privacy: does this upload my data?

No. The converter runs in your browser. Your JSON is not uploaded to a server.

Try it now

If you want us to support more database targets (MSSQL, Oracle) or add advanced options (UNIQUE constraints, UPSERT, custom table name), that’s the next step—tell us what you need most.