Konverter CSV ke SQL

Mengimpor data CSV ke basis data umumnya memerlukan penggunaan alat pembaca data atau penulisan perintah COPY/LOAD DATA INFILE yang hanya berfungsi pada file lokal. Untuk kumpulan data kecil, berjumlah puluhan, ratusan, atau bahkan beberapa ribu baris, pernyataan INSERT biasa yang dapat ditempelkan ke konsol SQL mana pun biasanya lebih cepat. Alat ini menerima file CSV Anda dan nama tabel, lalu menghasilkan satu pernyataan INSERT untuk setiap baris, dengan identifier yang dikutip menggunakan tanda kutip balik serta nilai yang dikutip dengan tanda kutip tunggal dan aman untuk dijalankan.

Cara penyusunan SQL

  1. 1

    Lampirkan file CSV

    CSV standar dengan baris header opsional. Parser menangani sel dalam tanda kutip yang mengandung pemisah.

  2. 2

    Atur nama tabel

    Karakter non-alfanumerik dalam nama tabel akan diganti dengan tanda garis bawah; jika kosong, nama tersebut akan kembali menggunakan format `my_table`.

  3. 3

    Kolom-kolom berasal dari header.

    Jika mode header diaktifkan, baris pertama akan menjadi daftar kolom. Jika tidak, kolom-kolom diberi nama `column_1`, `column_2`, dan seterusnya.

  4. 4

    Satu operasi INSERT untuk setiap baris data

    Setiap baris berubah menjadi `INSERT INTO table (cols) VALUES (...)`. Nilai-nilainya ditulis dalam tanda kutip tunggal, sedangkan tanda kutip internal digandakan.

Dialek, kutipan, dan kapan harus menggunakan alternatif lain

Generator ini dirancang untuk menangani pernyataan SQL bergaya MySQL yang menggunakan tanda kutip balik di sekitar identifier dan tanda kutip tunggal di sekitar nilai. Sebagian besar basis data dapat menerimanya dengan sedikit penyesuaian.

Daftar Panduan Dialek

Basis Data Pengutipan identifier Catatan
MySQL backticks Berfungsi tanpa perubahan.
MariaDB backticks Berfungsi tanpa perubahan.
PostgreSQL tanda kutip ganda Ganti ` dengan " sebelum dijalankan.
SQLite tanda kutip ganda Ganti ` dengan " atau hilangkan tanda kutip pada identifier.
SQL Server tanda kurung persegi Ganti ` dengan []; perhatikan N'...' untuk Unicode.

Bagaimana nilai di-escape

Semua nilai dikelilingi tanda kutip tunggal, dan tanda kutip tunggal yang terintegrasi akan digandakan (misalnya, O'Brien menjadi 'O''Brien'). Ini merupakan metode sesuai standar SQL-92 yang berfungsi di semua basis data utama. Konverter ini tidak melakukan penentuan tipe; semua data dikirimkan dalam bentuk literal string, sehingga konversi implisit basis data akan mengubah '42' menjadi bilangan bulat ketika kolomnya bernilai INT.

Tips untuk impor yang bersih

  • Buat tabel terlebih dahulu. Konverter hanya menghasilkan pernyataan INSERT, bukan CREATE TABLE. Pasangkan dengan skema yang Anda tentukan secara manual atau generasikan dari ORM Anda.
  • Bagi file besar menjadi bagian-bagian kecil. Tempelkan 500–1000 baris sekaligus jika klien SQL Anda memiliki batasan ukuran per pernyataan.
  • Lingkupkan dalam transaksi. Untuk data yang lebih dari beberapa ratus baris, batasi operasi penempelan dengan BEGIN; dan COMMIT; (atau START TRANSACTION;/COMMIT;). Cara ini jauh lebih cepat dibandingkan melakukan autocommit untuk setiap pernyataan secara terpisah.

Kapan harus melewatkan pembuatan SQL

Jika berkas Anda memiliki lebih dari sekitar 50.000 baris, loader massal bawaan (COPY di PostgreSQL, LOAD DATA INFILE di MySQL, dan bcp di SQL Server) jauh lebih cepat dibandingkan versi berbasis skrip INSERT. Alat ini dirancang untuk impor cepat, pengisian data uji, serta migrasi sekali pakai.

Pertanyaan yang Sering Diajukan

Tidak. Alat ini hanya menghasilkan pernyataan INSERT. Definisikan skema Anda sendiri menggunakan CREATE TABLE terlebih dahulu; dengan demikian Anda tetap memiliki kendali penuh atas tipe kolom, panjang, dan batasan data, bukan membiarkan konverter yang menentukannya secara acak.

Dengan satu perubahan: gantilah tanda kutip balik (backtick) di sekitar nama tabel dan kolom dengan tanda kutip ganda. Nilai-nilai ditulis dalam tanda kutip tunggal dan akan dijalankan secara langsung tanpa modifikasi pada semua dialek SQL-92.

Tanda kutip tunggal di dalam nilai akan digandakan (O''Brien), yang merupakan format pelarian standar dalam SQL. Tanda backslash, tanda persen, dan tanda underscore diterapkan secara harfiah; mereka hanya berfungsi sebagai simbol khusus dalam pola LIKE.

Ya. CSV dikirim ke server kami untuk menghasilkan SQL. Data tidak disimpan dan tidak ditambahkan ke tautan halaman.

Alat Terkait

Alat ini tersedia dalam bahasa lain