SQL till CSV-konverterare

Ibland är den enda kopian av datan du behöver en .sql-fil från en säkerhetskopia, en dump av INSERT INTO users (id, email, created_at) VALUES (...)-satser. Att ladda in den i en databas bara för att exportera den igen är långsamt. Den här konverteraren läser kolumnlistan och varje VALUES-tupel direkt från INSERT-syntaxen och skapar en CSV som du kan öppna i Excel, Google Kalkylark, Numbers eller pandas utan att någonsin återställa schemat.

Så konverterar du SQL-INSERT till CSV

  1. 1

    Klistra in SQL:en

    Släpp in en eller flera INSERT-satser. Både enradiga och flerradiga VALUES (...)-block stöds.

  2. 2

    Kolumner upptäcks automatiskt

    Parsern läser listan `(col1, col2, ...)` precis före VALUES och behandlar den som CSV:ens rubrikrad.

  3. 3

    Rader extraheras

    Varje tupel `(val1, val2, ...)` blir en CSV-rad. Strängar inom enkla citattecken befrias från citattecknen; tal och NULL passerar som text.

  4. 4

    Kopiera CSV:en

    Ta CSV-utdatan och klistra in den i ett kalkylark, eller spara den med filändelsen `.csv`.

Vad parsern accepterar

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

Blir:

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

Tillämpade CSV-escaperegler

  • Avgränsaren är alltid ett komma; det finns inget alternativ för avskiljare.
  • Fält som innehåller kommatecken, dubbla citattecken eller radbrytningar omges av dubbla citattecken.
  • Interna dubbla citattecken dubbleras (" blir ""), enligt RFC 4180.
  • Inledande och avslutande enkla citattecken från SQL-stränglitteraler tas bort.
  • SQL NULL passerar som den bokstavliga texten NULL; ersätt den längre fram om ditt verktyg förväntar sig tomma celler.

Begränsningar att känna till

  • Kolumnlista krävs. Parsern läser rubriken från listan (col1, col2, ...) före VALUES. Ett rent INSERT INTO t VALUES (...) utan kolumnlistan ger CSV-rader utan rubrik.
  • En tabell åt gången. Om din dump blandar INSERT för olika tabeller, dela upp dem först. Rader av olika bredd ger en ojämn CSV.
  • Ingen CREATE TABLE-tolkning. Kolumntyper används inte. Datum, JSON och binära blobbar kommer igenom som råtext.
  • Varje parentesgrupp blir en rad. Parsern gör varje grupp (...) till en rad, så avslutande satser som innehåller parenteser (ON DUPLICATE KEY UPDATE, RETURNING), funktionsanrop som NOW() eller nästlade arrayer som (1,2,3) inuti ett värde lägger till extra rader. Håll indatan till enkla INSERT ... VALUES-tupler och ersätt sådana uttryck med litteraler innan du klistrar in.

Vanliga frågor

Ja, så länge INSERT följer standardformen INSERT INTO table (cols) VALUES (...), som dessa databaser delar. Verktyget kör inte en fullständig SQL-parser: det extraherar kolumnlistan och värdetuplerna inom parenteser, så håll varje sats till enkel INSERT-syntax.

Kommatecken inuti SQL-strängar med enkla citattecken bevaras. I utdatan omges varje fält som innehåller ett kommatecken, citattecken eller radbrytning av dubbla citattecken och interna citattecken dubbleras, enligt RFC 4180. Värden som själva innehåller parenteser delas kanske inte upp korrekt.

Nej. Din SQL skickas till vår server, tolkas i ett svep och returneras, så håll indatan till några megabyte i taget. För mycket stora dumpar delar du upp filen i delar (ett INSERT-block per del) och konverterar dem bitvis.

Nej, utdatan är en platt CSV. Kolumntyper, index och villkor finns i CREATE TABLE och ligger utanför den här konverterarens omfattning.

Din SQL skickas till vår server enbart för att skapa CSV:en och lagras inte; vi behåller en anonym räkning av hur många rader som konverterades, aldrig själva SQL-texten.

Relaterade verktyg

Verktyget finns på andra språk