SQLからCSVへの変換ツール
ときには、必要なデータの唯一のコピーがバックアップの.sqlファイル、つまりINSERT INTO users (id, email, created_at) VALUES (...)文のダンプだけということがあります。再度エクスポートするためだけにデータベースへ読み込むのは遅い作業です。この変換ツールは、列リストと各VALUESタプルをINSERT構文から直接読み取り、スキーマを復元しなくてもExcel、Googleスプレッドシート、Numbers、pandasで開けるCSVを生成します。
SQLのINSERTをCSVに変換する方法
-
1
SQLを貼り付ける
1つ以上のINSERT文を入れます。単一行と複数行のVALUES (...)ブロックの両方に対応しています。
-
2
列を自動検出
パーサーはVALUESの直前にある`(col1, col2, ...)`リストを読み取り、それをCSVの見出し行として扱います。
-
3
行を抽出
各`(val1, val2, ...)`タプルがCSVの1行になります。単一引用符の文字列は引用符が外され、数値とNULLはテキストとしてそのまま渡されます。
-
4
CSVをコピー
CSV出力を取得してスプレッドシートに貼り付けるか、`.csv`拡張子で保存します。
パーサーが受け付けるもの
INSERT INTO users (id, email, created_at) VALUES
(1, 'alice@example.com', '2024-01-12 09:00:00'),
(2, 'bob@example.com', '2024-01-13 10:30:00'),
(3, 'carol@example.com', '2024-01-13 11:15:00');
これが次のようになります。
id,email,created_at
1,alice@example.com,2024-01-12 09:00:00
2,bob@example.com,2024-01-13 10:30:00
3,carol@example.com,2024-01-13 11:15:00
適用されるCSVエスケープ規則
- 区切り文字は常にカンマで、区切り文字を選ぶオプションはありません。
- カンマ、二重引用符、改行を含むフィールドは二重引用符で囲まれます。
- 内部の二重引用符は二重化されます(
"は""になる)。RFC 4180に準拠します。 - SQL文字列リテラルの先頭と末尾の単一引用符は取り除かれます。
- SQLの
NULLはリテラルなテキストNULLとしてそのまま渡されます。空のセルが必要なツールの場合は、後段で置き換えてください。
知っておくべき制限
- 列リストが必須。 パーサーはVALUESの前の
(col1, col2, ...)リストから見出しを読み取ります。列リストのない素のINSERT INTO t VALUES (...)は、見出しのないCSV行になります。 - 一度に1テーブルのみ。 ダンプが異なるテーブルのINSERTを混在させている場合は、先に分割してください。幅の異なる行は不揃いなCSVになります。
- CREATE TABLEの解析なし。 列の型は使われません。日付、JSON、バイナリのblobは生のテキストとして通ります。
- 各括弧グループが1行になる。 パーサーは各
(...)グループを1行に変換するため、括弧を含む末尾の句(ON DUPLICATE KEY UPDATE、RETURNING)、NOW()のような関数呼び出し、値の中の(1,2,3)のような入れ子配列は余分な行を追加します。入力を単純なINSERT ... VALUESタプルに限定し、貼り付ける前にそうした式をリテラルに置き換えてください。
よくある質問
はい。INSERTがこれらのデータベース共通の標準形式INSERT INTO table (cols) VALUES (...)に従っている限り動作します。このツールは完全なSQLパーサーを実行するわけではなく、列リストと括弧内の値タプルを抽出するだけなので、各文は単純なINSERT構文にとどめてください。
単一引用符のSQL文字列内のカンマは保持されます。出力では、カンマ・引用符・改行を含むフィールドは二重引用符で囲まれ、内部の引用符はRFC 4180に従って二重化されます。それ自体が括弧を含む値は、うまく分割されないことがあります。
いいえ。SQLは当社のサーバーに送信され、一度の処理で解析されて返されるため、入力は一度に数メガバイトにとどめてください。非常に大きなダンプの場合は、ファイルをチャンク(1チャンクにつき1つのINSERTブロック)に分割し、少しずつ変換してください。
いいえ、出力はフラットなCSVです。列の型、インデックス、制約はCREATE TABLEにあり、この変換ツールの範囲外です。
SQLはCSVを生成するためだけに当社のサーバーへ送信され、保存されません。変換した行数の匿名のカウントは保持しますが、SQLのテキストそのものは決して保持しません。
関連ツール
ファイル拡張子識別ツール
ファイル名や拡張子から、対応するファイルタイプとMIMEタイプを調べられます。一般的なフォーマットの早見表と、二重拡張子を見抜くヒント付きです。
Excel シート分割ツール
XLSX または XLS のブックを、ワークシートのタブ、データ行のまとまり、列の値でブラウザー内で分割します。ファイルをアップロードせずに、1 つの XLSX またはローカル ZIP をダウンロードできます。
CSVからExcelへ変換
CSVをブラウザ内で単一シートのXLSXへ変換します。区切り文字を確認し、IDを保持し、安全な数値だけを数値セルにして内容を送信せず保存できます。
MOBI から EPUB への変換ツール
MOBI の電子書籍を、Apple Books・Kobo・Google Play ブックス・最新のほとんどのアプリが読めるオープン標準の EPUB に変換します。.mobi ファイルをアップロードして、きれいな .epub をダウンロード。
SQLテストデータジェネレーター
任意のテーブル名に対し、連番のサンプル行(id, name, email, active)で実行可能なSQL INSERT文を生成します。最大200行、MySQL構文、ワンクリック。
フェイクJSONジェネレーター
名前、メール、真偽値、スコア、日付を含むサンプルJSON配列を数秒で生成。APIモックやテストフィクスチャに最適です。
このツールは他の言語でも利用できます
- SQL till CSV-konverterare [SV]
- Trình chuyển đổi SQL sang CSV [VI]
- SQL-zu-CSV-Konverter [DE]
- Konverter SQL ke CSV [ID]
- Konwerter SQL na CSV [PL]
- محوّل SQL إلى CSV [AR]
- Conversor de SQL para CSV [PT]
- Conversor de SQL a CSV [ES]
- Convertisseur SQL en CSV [FR]
- SQL을 CSV로 변환하는 도구 [KO]
- SQL-naar-CSV-converter [NL]
- ตัวแปลง SQL เป็น CSV [TH]
- SQL to CSV Converter [EN]
- Convertitore da SQL a CSV [IT]
- Конвертер SQL в CSV [RU]
- SQL'den CSV'ye Dönüştürücü [TR]
- SQL 转 CSV 转换器 [ZH]