Konverter SQL ke CSV

Kadang satu-satunya salinan data yang Anda butuhkan adalah berkas .sql dari cadangan, sebuah dump pernyataan INSERT INTO users (id, email, created_at) VALUES (...). Memuatnya ke basis data hanya untuk mengekspornya lagi itu lambat. Konverter ini membaca daftar kolom dan setiap tuple VALUES langsung dari sintaks INSERT dan menghasilkan CSV yang bisa Anda buka di Excel, Google Sheets, Numbers, atau pandas tanpa pernah memulihkan skema.

Cara mengonversi INSERT SQL ke CSV

  1. 1

    Tempel SQL

    Jatuhkan satu atau beberapa pernyataan INSERT. Blok VALUES (...) baris tunggal maupun banyak baris didukung.

  2. 2

    Kolom terdeteksi otomatis

    Parser membaca daftar `(col1, col2, ...)` tepat sebelum VALUES dan memperlakukannya sebagai baris header CSV.

  3. 3

    Baris diekstrak

    Setiap tuple `(val1, val2, ...)` menjadi satu baris CSV. String dalam tanda petik tunggal dilepas tanda petiknya; angka dan NULL diteruskan sebagai teks.

  4. 4

    Salin CSV

    Ambil keluaran CSV dan tempel ke lembar kerja, atau simpan dengan ekstensi `.csv`.

Apa yang diterima parser

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');

Menjadi:

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

Aturan escaping CSV yang diterapkan

  • Pembatasnya selalu koma; tidak ada opsi pemisah.
  • Bidang yang memuat koma, tanda petik ganda, atau baris baru dibungkus dengan tanda petik ganda.
  • Tanda petik ganda internal digandakan (" menjadi ""), sesuai RFC 4180.
  • Tanda petik tunggal di awal dan akhir literal string SQL dihapus.
  • NULL SQL diteruskan sebagai teks harfiah NULL; ganti di tahap berikutnya jika alat Anda mengharapkan sel kosong.

Batasan yang perlu diketahui

  • Daftar kolom wajib. Parser membaca header dari daftar (col1, col2, ...) sebelum VALUES. INSERT INTO t VALUES (...) polos tanpa daftar kolom menghasilkan baris CSV tanpa header.
  • Satu tabel dalam satu waktu. Jika dump Anda mencampur INSERT untuk tabel yang berbeda, pisahkan dulu. Baris dengan lebar berbeda menghasilkan CSV yang tidak beraturan.
  • Tanpa penguraian CREATE TABLE. Tipe kolom tidak digunakan. Tanggal, JSON, dan blob biner diteruskan sebagai teks mentah.
  • Setiap grup tanda kurung menjadi satu baris. Parser mengubah setiap grup (...) menjadi baris, jadi klausa penutup yang memuat tanda kurung (ON DUPLICATE KEY UPDATE, RETURNING), panggilan fungsi seperti NOW(), atau array bersarang seperti (1,2,3) di dalam sebuah nilai menambahkan baris berlebih. Batasi masukan pada tuple INSERT ... VALUES sederhana dan ganti ekspresi tersebut dengan literal sebelum menempel.

Pertanyaan yang Sering Diajukan

Ya, selama INSERT mengikuti bentuk standar INSERT INTO table (cols) VALUES (...) yang sama-sama dipakai basis data tersebut. Alat ini tidak menjalankan parser SQL penuh: ia mengekstrak daftar kolom dan tuple nilai di dalam tanda kurung, jadi jaga setiap pernyataan tetap dalam sintaks INSERT sederhana.

Koma di dalam string SQL bertanda petik tunggal dipertahankan. Pada keluaran, bidang apa pun yang memuat koma, tanda petik, atau baris baru dibungkus tanda petik ganda dan tanda petik internal digandakan, sesuai RFC 4180. Nilai yang sendirinya memuat tanda kurung mungkin tidak terpisah dengan rapi.

Tidak. SQL Anda dikirim ke server kami, diurai dalam satu lintasan, lalu dikembalikan, jadi batasi masukan pada beberapa megabyte setiap kali. Untuk dump yang sangat besar, pecah berkas menjadi bagian (satu blok INSERT per bagian) dan konversikan sepotong-sepotong.

Tidak, keluarannya adalah CSV datar. Tipe kolom, indeks, dan batasan berada di CREATE TABLE dan di luar cakupan konverter ini.

SQL Anda dikirim ke server kami hanya untuk menghasilkan CSV dan tidak disimpan; kami menyimpan hitungan anonim berapa banyak baris yang dikonversi, tidak pernah teks SQL itu sendiri.

Alat Terkait

Alat ini tersedia dalam bahasa lain