JSON を MariaDB に変換
JSON ファイルをドロップすると、CREATE TABLE と INSERT 文を含む MariaDB 用のスクリプトができます。各列に型を付け、すべての修正を行と列とともに一覧にします。
4 行を変換、修正 2 件、却下なし
| 行 | ||||||
|---|---|---|---|---|---|---|
| 2 | 000481 | Peña Muñoz | 2024-02-03T10:15:00Z | 1234.5 | true | |
| 3 | 000482 | José Ángel Ruiz | 2024-02-15T16:40:00Z | 99.9 | false | Entrega en la tarde |
| 4 | 000483 | Zoë Ortíz | 2024-02-29T09:05:00Z | 12 | true | |
| 5 | 000484 | Ñuño Castañeda | 2024-03-11T13:30:00Z | 980.75 | sí | Factura con "RFC" |
-- Written by IntoSQL for MariaDB.
SET NAMES utf8mb4;
SET SESSION sql_mode = REPLACE(@@sql_mode, 'NO_BACKSLASH_ESCAPES', '');
START TRANSACTION;
CREATE TABLE pedidos_2024 (
pedido varchar(8) NOT NULL,
cliente varchar(16) NOT NULL,
fecha datetime NOT NULL,
total decimal(6,2) NOT NULL,
pagado tinyint(1) NOT NULL,
notas varchar(32)
) DEFAULT CHARSET=utf8mb4;
INSERT INTO pedidos_2024 (pedido, cliente, fecha, total, pagado, notas) VALUES
('000481', 'Peña Muñoz', '2024-02-03 10:15:00', 1234.5, TRUE, NULL),
('000482', 'José Ángel Ruiz', '2024-02-15 16:40:00', 99.9, FALSE, 'Entrega en la tarde'),
('000483', 'Zoë Ortíz', '2024-02-29 09:05:00', 12, TRUE, NULL),
('000484', 'Ñuño Castañeda', '2024-03-11 13:30:00', 980.75, TRUE, 'Factura con "RFC"');
COMMIT;
修正
- "pedido" の先頭のゼロを保持しました。000481 は 000481 のまま、テキストとして保存します。
- "pagado" には「はい/いいえ」の語 (sí) があるため、ブール値として保存しました。
ファイルはこのコンピューター上で変換され、アップロードされることはありません。
その他のサンプル:
JSON から MariaDB へ、列ごとに
上のサンプル pedidos_2024.json を IntoSQL が MariaDB 用に書き出した結果です。各列のファイル内の内容、付く型、最初の値がスクリプトでどうなるかを示します。
| ファイル内 | 最初の値 | 列 | MariaDB の型 | スクリプト内 |
|---|---|---|---|---|
| pedido | 000481 | pedido | varchar(8) | '000481' |
| cliente | Peña Muñoz | cliente | varchar(16) | 'Peña Muñoz' |
| fecha | 2024-02-03T10:15:00Z | fecha | datetime | '2024-02-03 10:15:00' |
| total | 1234.5 | total | decimal(6,2) | 1234.5 |
| pagado | true | pagado | tinyint(1) | TRUE |
| notas | - | notas | varchar(32) | NULL |
スクリプトを MariaDB に読み込む
ダウンロードされるのは普通の .sql ファイルです。MariaDB 付属のツールで実行してください。
ターミナルから
mariadb --default-character-set=utf8mb4 mydb < pedidos_2024.mariadb.sqlスクリプト自体が utf8mb4 を設定します。このフラグでクライアントも同じ方法で送信するため、アクセント記号が崩れません。
データベースツールから
HeidiSQL や DBeaver では、スクリプトを開いて実行します。
スクリプトを使わずにPro
IntoSQL Pro なら、デスクトップアプリやコマンドラインからファイルを MariaDB に直接読み込めます。スクリプトを書き出す必要はありません。
intosql load pedidos_2024.json --into mariadb://user@localhost/mydbJSON ファイルと MariaDB について知っておくこと
IntoSQL が JSON ファイルから読み取るもの
- ファイルはオブジェクトの配列、その配列を data などのキーの下に持つオブジェクト、または 1 行に 1 オブジェクト (NDJSON) のいずれでも使えます。
- 各キーが列になります。値の中のオブジェクトや配列は JSON テキストとして保持されます。
- 数値は桁をそのまま保ち、ISO 8601 の日付は日付またはタイムスタンプになります。
MariaDB について知っておくこと
- はい/いいえの値は tinyint(1) になります。255 文字までのテキストは varchar、それより長いテキストはサイズに応じて text、mediumtext、longtext になります。
- スクリプトは utf8mb4 を使い SQL モードを設定するので、アクセント記号、絵文字、バックスラッシュ、改行は書かれたとおりに読み込まれます。
- MariaDB の datetime はタイムゾーンを保存しません。
MariaDB で各種類の値がどう保存されるか
| 値 | MariaDB |
|---|---|
| はい/いいえ | tinyint(1) |
| 整数 | int |
| 大きな整数 | bigint |
| 小数 | decimal(p,s)double |
| 浮動小数点数 | double |
| 日付 | date |
| 時刻 | time(6)time |
| 日付と時刻 | datetime(6)datetime |
| 日付と時刻、時差付き | datetime(6)datetime |
| テキスト | varchar(n)textmediumtextlongtext |
JSON から MariaDB への変換に関する質問
ここに答えがない場合は、お問い合わせページからご連絡ください。担当者が返信します。 お問い合わせページ
JSON を MariaDB に変換するには?
このページ上部のコンバーターにファイルをドロップしてください。ヘッダーを見つけ、すべての値を読み取り、行った修正を一覧にしながら MariaDB 用のスクリプトを書き出します。スクリプトをダウンロードし、the mariadb client で実行してください。
JSON ファイルはどんな形式が必要ですか?
オブジェクトの配列、その配列を data などのキーの下に持つオブジェクト、または 1 行に 1 オブジェクト (NDJSON) です。各キーが列になります。
MariaDB ではどの型を使いますか?
はい/いいえの値は tinyint(1)、整数は int、小数は decimal(p,s)、日付は date、時刻付きの日付は datetime(6)、テキストは varchar(n) になります。サイズは各列の最も長い値から決まります。
MariaDB で先頭のゼロは残りますか?
はい。000481 のようなコードはテキストのまま扱われるため、MariaDB では varchar(8) として保存され、スクリプトには '000481' と書かれます。
スクリプトを使わずに MariaDB にデータを読み込めますか?
はい、IntoSQL Pro で可能です。デスクトップアプリとコマンドラインが MariaDB に接続し、テーブルを作成してから行を直接読み込みます。
JSON ファイルはどのくらいの大きさまで扱えますか?
1 行に 1 オブジェクトの NDJSON は流れてくる順に読むため、ブラウザでも数 GB のファイルを扱えます。JSON ドキュメントは全体を一度に読むため、上限はブラウザがこのページに割り当てるメモリです。デスクトップアプリとコマンドラインはどんなサイズのファイルも扱えます。