Convertitore da SQL a CSV

A volte l’unica copia dei dati di cui hai bisogno è un file .sql da un backup, un dump di istruzioni INSERT INTO users (id, email, created_at) VALUES (...). Caricarlo in un database solo per esportarlo di nuovo è lento. Questo convertitore legge l’elenco delle colonne e ogni tupla VALUES direttamente dalla sintassi INSERT e genera un CSV che puoi aprire in Excel, Google Sheets, Numbers o pandas senza mai ripristinare lo schema.

Come convertire gli INSERT SQL in CSV

  1. 1

    Incolla il SQL

    Inserisci una o più istruzioni INSERT. Sono supportati sia i blocchi VALUES (...) a riga singola sia quelli a più righe.

  2. 2

    Colonne rilevate automaticamente

    Il parser legge l'elenco `(col1, col2, ...)` subito prima di VALUES e lo tratta come riga di intestazione del CSV.

  3. 3

    Righe estratte

    Ogni tupla `(val1, val2, ...)` diventa una riga CSV. Le stringhe tra apici singoli vengono ripulite dagli apici; numeri e NULL passano come testo.

  4. 4

    Copia il CSV

    Prendi l'output CSV e incollalo in un foglio di calcolo, oppure salvalo con l'estensione `.csv`.

Cosa accetta il 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');

Diventa:

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

Regole di escape CSV applicate

  • Il delimitatore è sempre una virgola; non esiste un’opzione per il separatore.
  • I campi che contengono virgole, virgolette doppie o a capo vengono racchiusi tra virgolette doppie.
  • Le virgolette doppie interne vengono raddoppiate (" diventa ""), secondo l’RFC 4180.
  • Le virgolette singole iniziali e finali dei letterali di stringa SQL vengono rimosse.
  • Il NULL SQL passa come il testo letterale NULL; sostituiscilo a valle se il tuo strumento si aspetta celle vuote.

Limitazioni da conoscere

  • Elenco colonne richiesto. Il parser legge l’intestazione dall’elenco (col1, col2, ...) prima di VALUES. Un semplice INSERT INTO t VALUES (...) senza l’elenco delle colonne produce righe CSV senza intestazione.
  • Una tabella alla volta. Se il tuo dump mescola INSERT per tabelle diverse, separali prima. Righe di larghezza diversa producono un CSV irregolare.
  • Nessun parsing di CREATE TABLE. I tipi di colonna non vengono usati. Date, JSON e blob binari passano come testo grezzo.
  • Ogni gruppo di parentesi diventa una riga. Il parser trasforma ogni gruppo (...) in una riga, quindi le clausole finali che contengono parentesi (ON DUPLICATE KEY UPDATE, RETURNING), le chiamate di funzione come NOW() o gli array annidati come (1,2,3) all’interno di un valore aggiungono righe superflue. Limita l’input a tuple INSERT ... VALUES semplici e sostituisci queste espressioni con letterali prima di incollare.

Domande frequenti

Sì, purché l’INSERT segua la forma standard INSERT INTO table (cols) VALUES (...), comune a questi database. Lo strumento non esegue un parser SQL completo: estrae l’elenco delle colonne e le tuple di valori tra parentesi, quindi mantieni ogni istruzione in sintassi INSERT semplice.

Le virgole all’interno delle stringhe SQL tra apici singoli vengono preservate. In output, qualsiasi campo che contenga una virgola, una virgoletta o un a capo viene racchiuso tra virgolette doppie e le virgolette interne vengono raddoppiate, in conformità con l’RFC 4180. I valori che contengono a loro volta parentesi potrebbero non essere suddivisi correttamente.

No. Il tuo SQL viene inviato al nostro server, analizzato in un’unica passata e restituito, quindi mantieni l’input a pochi megabyte per volta. Per dump molto grandi, dividi il file in blocchi (un blocco INSERT per blocco) e convertili a pezzi.

No, l’output è un CSV piatto. I tipi di colonna, gli indici e i vincoli vivono in CREATE TABLE e sono al di fuori dell’ambito di questo convertitore.

Il tuo SQL viene inviato al nostro server solo per produrre il CSV e non viene memorizzato; conserviamo un conteggio anonimo di quante righe sono state convertite, mai il testo SQL stesso.

Strumenti correlati

Strumento disponibile in altre lingue