---
title: "JSON を SQL に変換"
description: "JSON ファイルをブラウザ上で PostgreSQL、MySQL、MariaDB、SQLite、SQL Server、Oracle 用の SQL に変換します。無料で、ファイルはアップロードされません。"
canonical: https://intosql.com/ja/json-to-sql
last_updated: 2026-10-15
---

# JSON を SQL に変換

JSON ファイルをドロップしてデータベースを選ぶと、CREATE TABLE と INSERT 文を含む SQL スクリプトができます。各列に型を付け、すべての修正を行と列とともに一覧にします。

## 1 つの JSON ファイル、6 つのデータベース

上のサンプル pedidos_2024.json の各列に、データベースごとに付く型です。

| ファイル内 | 最初の値 | PostgreSQL | MySQL | MariaDB | SQLite | SQL Server | Oracle |
| --- | --- | --- | --- | --- | --- | --- | --- |
| pedido | `000481` | `text` | `varchar(8)` | `varchar(8)` | `TEXT` | `nvarchar(8)` | `VARCHAR2(8 CHAR)` |
| cliente | `Peña Muñoz` | `text` | `varchar(16)` | `varchar(16)` | `TEXT` | `nvarchar(16)` | `VARCHAR2(16 CHAR)` |
| fecha | `2024-02-03T10:15:00Z` | `timestamptz` | `datetime` | `datetime` | `DATETIME` | `datetimeoffset` | `TIMESTAMP WITH TIME ZONE` |
| total | `1234.5` | `numeric(6,2)` | `decimal(6,2)` | `decimal(6,2)` | `NUMERIC(6,2)` | `decimal(6,2)` | `NUMBER(6,2)` |
| pagado | `true` | `boolean` | `tinyint(1)` | `tinyint(1)` | `BOOLEAN` | `bit` | `NUMBER(1)` |
| notas | `` | `text` | `varchar(32)` | `varchar(32)` | `TEXT` | `nvarchar(32)` | `VARCHAR2(32 CHAR)` |

## スクリプトをデータベースに読み込む

ダウンロードされるのは普通の .sql ファイルです。各データベース付属のツールで実行できます。

### PostgreSQL

```shell
psql -v ON_ERROR_STOP=1 -d mydb -f pedidos_2024.postgresql.sql
```

ON_ERROR_STOP を付けると、psql は最初のエラーで止まります。スクリプトは 1 つのトランザクションで実行されるため、読み込みに失敗してもデータベースは元のままです。 pgAdmin や DBeaver では、クエリウィンドウでスクリプトを開いて実行します。

スクリプトを使わずに:

```shell
intosql load pedidos_2024.json --into postgres://user@localhost/mydb
```

### MySQL

```shell
mysql --default-character-set=utf8mb4 mydb < pedidos_2024.mysql.sql
```

スクリプト自体が utf8mb4 を設定します。このフラグでクライアントも同じ方法で送信するため、アクセント記号が崩れません。 MySQL Workbench では、File、Run SQL Script の順に選び、ファイルを指定します。

スクリプトを使わずに:

```shell
intosql load pedidos_2024.json --into mysql://user@localhost/mydb
```

### MariaDB

```shell
mariadb --default-character-set=utf8mb4 mydb < pedidos_2024.mariadb.sql
```

スクリプト自体が utf8mb4 を設定します。このフラグでクライアントも同じ方法で送信するため、アクセント記号が崩れません。 HeidiSQL や DBeaver では、スクリプトを開いて実行します。

スクリプトを使わずに:

```shell
intosql load pedidos_2024.json --into mariadb://user@localhost/mydb
```

### SQLite

```shell
sqlite3 pedidos_2024.db < pedidos_2024.sqlite.sql
```

データベースファイルがなければ作成されます。コンバーターでは、コマンドを使わずにそのまま使える .sqlite データベースもダウンロードできます。 DB Browser for SQLite では、Execute SQL を選び、スクリプトを開いて実行します。

スクリプトを使わずに:

```shell
intosql load pedidos_2024.json --into pedidos_2024.db
```

### SQL Server

```shell
sqlcmd -S localhost -d mydb -f 65001 -i pedidos_2024.sql_server.sql
```

-f 65001 でファイルを UTF-8 として読むため、アクセント記号や ñ は書かれたとおりに届きます。 SQL Server Management Studio や Azure Data Studio では、ファイルを開いて Execute を選びます。

### Oracle

```shell
sqlplus user@//localhost/mydb @pedidos_2024.oracle.sql
```

スクリプトは置換変数をオフにする (SET DEFINE OFF) ため、データ内のアンパサンドはそのまま残ります。 SQL Developer では、スクリプトを開いて Run Script (F5) を選びます。

## IntoSQL が JSON ファイルから読み取るもの

- ファイルはオブジェクトの配列、その配列を data などのキーの下に持つオブジェクト、または 1 行に 1 オブジェクト (NDJSON) のいずれでも使えます。
- 各キーが列になります。値の中のオブジェクトや配列は JSON テキストとして保持されます。
- 数値は桁をそのまま保ち、ISO 8601 の日付は日付またはタイムスタンプになります。

## 各データベースについて知っておくこと

- ファイルを開いたらデータベースを選んでください。それぞれがサポートする型が使われます。

### 各データベースで各種類の値がどう保存されるか

| 値 | PostgreSQL | MySQL | MariaDB | SQLite | SQL Server | Oracle |
| --- | --- | --- | --- | --- | --- | --- |
| はい/いいえ | `boolean` | `tinyint(1)` | `tinyint(1)` | `BOOLEAN` | `bit` | `NUMBER(1)` |
| 整数 | `integer` | `int` | `int` | `INTEGER` | `int` | `NUMBER(10)` |
| 大きな整数 | `bigint` | `bigint` | `bigint` | `INTEGER` | `bigint` | `NUMBER(19)` |
| 小数 | `numeric(p,s)` | `decimal(p,s) · double` | `decimal(p,s) · double` | `NUMERIC(p,s) · TEXT` | `decimal(p,s)` | `NUMBER(p,s)` |
| 浮動小数点数 | `double precision` | `double` | `double` | `REAL` | `float` | `BINARY_DOUBLE` |
| 日付 | `date` | `date` | `date` | `DATE` | `date` | `DATE` |
| 時刻 | `time` | `time(6) · time` | `time(6) · time` | `TIME` | `time` | `INTERVAL DAY(0) TO SECOND` |
| 日付と時刻 | `timestamp` | `datetime(6) · datetime` | `datetime(6) · datetime` | `DATETIME` | `datetime2` | `TIMESTAMP` |
| 日付と時刻、時差付き | `timestamptz` | `datetime(6) · datetime` | `datetime(6) · datetime` | `DATETIME` | `datetimeoffset` | `TIMESTAMP WITH TIME ZONE` |
| テキスト | `text` | `varchar(n) · text · mediumtext · longtext` | `varchar(n) · text · mediumtext · longtext` | `TEXT` | `nvarchar(n) · nvarchar(max)` | `VARCHAR2(n CHAR) · CLOB` |

## JSON から SQL への変換に関する質問

### JSON を SQL に変換するには？

このページ上部のコンバーターにファイルをドロップし、データベースを選んでください。PostgreSQL、MySQL、MariaDB、SQLite、SQL Server、Oracle に対応し、それぞれが扱える型を使います。スクリプトをダウンロードし、データベースで実行してください。

### JSON ファイルはどんな形式が必要ですか？

オブジェクトの配列、その配列を data などのキーの下に持つオブジェクト、または 1 行に 1 オブジェクト (NDJSON) です。各キーが列になります。

### 各データベースではどの型を使いますか？

データベースごとに異なります。たとえば、はい/いいえの値は PostgreSQL では boolean、MySQL と MariaDB では tinyint(1)、SQL Server では bit、Oracle では NUMBER(1) になります。値の種類ごとの一覧はこのページの表にあります。

### 先頭のゼロは残りますか？

はい。000481 のようなコードはどのデータベースでもテキストのまま '000481' と書かれるため、ゼロは失われません。

### スクリプトを使わずにデータを読み込めますか？

はい。コマンドラインなら SQLite に無料で読み込めます。IntoSQL Pro では、デスクトップアプリとコマンドラインで PostgreSQL、MySQL、MariaDB にも読み込めます。SQL Server と Oracle ではスクリプトを実行してください。

### JSON ファイルはどのくらいの大きさまで扱えますか？

1 行に 1 オブジェクトの NDJSON は流れてくる順に読むため、ブラウザでも数 GB のファイルを扱えます。JSON ドキュメントは全体を一度に読むため、上限はブラウザがこのページに割り当てるメモリです。デスクトップアプリとコマンドラインはどんなサイズのファイルも扱えます。

## JSON から他のデータベースへ

- [JSON を PostgreSQL に変換](https://intosql.com/ja/json-to-postgresql)
- [JSON を MySQL に変換](https://intosql.com/ja/json-to-mysql)
- [JSON を MariaDB に変換](https://intosql.com/ja/json-to-mariadb)
- [JSON を SQLite に変換](https://intosql.com/ja/json-to-sqlite)
- [JSON を SQL Server に変換](https://intosql.com/ja/json-to-sql-server)
- [JSON を Oracle に変換](https://intosql.com/ja/json-to-oracle)

## 他のファイルから SQL へ

- [Excel を SQL に変換](https://intosql.com/ja/excel-to-sql)
- [CSV を SQL に変換](https://intosql.com/ja/csv-to-sql)
