Vai al contenuto

Convertire CSV in SQL

Trascina il tuo file CSV e scegli il tuo database per ottenere uno script SQL con istruzioni CREATE TABLE e INSERT. Ogni colonna riceve un tipo e ogni correzione è elencata con la sua riga e colonna.

Il tuo file
csvventas_2024.csvFile di esempio, 357 B
Il tuo database

5 righe convertite, 8 correzioni, nessuna rifiutata

Mostra
Le prime righe di ventas_2024.csv, con ogni correzione segnata
Riga
500412Peña MuñozMérida15/02/20241.234,50sí
600413José Ángel RuizLeón03/02/202499,90no
700414Zoë OrtízQuerétaro29/02/2024N/Así
800415Ñuño CastañedaOaxaca28/02/20247,25no
900416Iñaki OlaizolaMazatlán11/03/2024980,75sí
-- Written by IntoSQL for PostgreSQL.

SET client_encoding = 'UTF8';
BEGIN;

CREATE TABLE ventas_2024 (
    folio text NOT NULL,
    cliente text NOT NULL,
    ciudad text NOT NULL,
    fecha date NOT NULL,
    importe numeric(6,2),
    pagado boolean NOT NULL
);

INSERT INTO ventas_2024 (folio, cliente, ciudad, fecha, importe, pagado) VALUES
('00412', 'Peña Muñoz', 'Mérida', '2024-02-15', 1234.50, TRUE),
('00413', 'José Ángel Ruiz', 'León', '2024-02-03', 99.90, FALSE),
('00414', 'Zoë Ortíz', 'Querétaro', '2024-02-29', NULL, TRUE),
('00415', 'Ñuño Castañeda', 'Oaxaca', '2024-02-28', 7.25, FALSE),
('00416', 'Iñaki Olaizola', 'Mazatlán', '2024-03-11', 980.75, TRUE);

COMMIT;

Correzioni

  1. Il file era codificato in windows‑1252; è stato convertito in UTF-8.
  2. L'intestazione è alla riga 4; le righe sopra sono state escluse.
  3. La riga 10 ("TOTAL") è un totale, quindi è stata esclusa.
  4. Zeri iniziali mantenuti in "Folio": 00412 resta 00412, salvato come testo.
  5. 15/02/2024 dimostra che le date in "Fecha" hanno prima il giorno, quindi 03/02/2024 si legge come 2024‑02‑03.
  6. I numeri in "Importe" usano la virgola decimale: 1.234,50 si legge come 1234.50.
  7. N/A in "Importe" letti come vuoti (1 su 5 valori).
  8. "Pagado" contiene parole sì e no (sí, no), salvate come booleano.

Il tuo file viene convertito su questo computer e non viene mai caricato.

Altri esempi:

Un file CSV, sei database

L'esempio qui sopra, ventas_2024.csv, e il tipo che riceve ciascuna colonna in ogni database.

Nel filePrimo valorePostgreSQLMySQLMariaDBSQLiteSQL ServerOracle
Folio00412textvarchar(8)varchar(8)TEXTnvarchar(8)VARCHAR2(8 CHAR)
ClientePeña Muñoztextvarchar(16)varchar(16)TEXTnvarchar(16)VARCHAR2(16 CHAR)
CiudadMéridatextvarchar(16)varchar(16)TEXTnvarchar(16)VARCHAR2(16 CHAR)
Fecha15/02/2024datedatedateDATEdateDATE
Importe1.234,50numeric(6,2)decimal(6,2)decimal(6,2)NUMERIC(6,2)decimal(6,2)NUMBER(6,2)
Pagadosíbooleantinyint(1)tinyint(1)BOOLEANbitNUMBER(1)

Carica lo script nel tuo database

Il download è un semplice file .sql. Ogni database lo esegue con i propri strumenti.

  • PostgreSQL

    psql -v ON_ERROR_STOP=1 -d mydb -f ventas_2024.postgresql.sql

    ON_ERROR_STOP ferma psql al primo errore. Lo script gira in un'unica transazione, quindi un caricamento fallito lascia il database com'era.

  • MySQL

    mysql --default-character-set=utf8mb4 mydb < ventas_2024.mysql.sql

    Lo script imposta già utf8mb4; il flag fa sì che il client lo invii allo stesso modo, così gli accenti arrivano intatti.

  • MariaDB

    mariadb --default-character-set=utf8mb4 mydb < ventas_2024.mariadb.sql

    Lo script imposta già utf8mb4; il flag fa sì che il client lo invii allo stesso modo, così gli accenti arrivano intatti.

  • SQLite

    sqlite3 ventas_2024.db < ventas_2024.sqlite.sql

    Il file del database viene creato se non esiste. Il convertitore scarica anche un database .sqlite pronto, senza alcun comando.

  • SQL Server

    sqlcmd -S localhost -d mydb -f 65001 -i ventas_2024.sql_server.sql

    -f 65001 legge il file come UTF-8, così accenti e ñ arrivano come sono scritti.

  • Oracle

    sqlplus user@//localhost/mydb @ventas_2024.oracle.sql

    Lo script disattiva le variabili di sostituzione (SET DEFINE OFF), così una e commerciale nei tuoi dati resta tale.

La riga di comando carica gratis i file direttamente in un database SQLite. Con IntoSQL Pro, lei e l'app desktop caricano anche in PostgreSQL, MySQL e MariaDB. Per SQL Server e Oracle, esegui lo script.

Cosa sapere sui file CSV e su ogni database

Cosa legge IntoSQL nei file CSV

  • La codifica viene rilevata, comprese Windows-1252 e UTF-16, così accenti e ñ arrivano intatti.
  • Il separatore viene rilevato: virgola, punto e virgola, tabulazione o barra verticale. Con il punto e virgola, le virgole decimali come 1.234,50 vengono lette come numeri.
  • I valori tra virgolette possono contenere separatori e a capo.

Cosa sapere su ogni database

  • Scegli il database dopo aver aperto il file: ognuno riceve i tipi che supporta.

Come viene salvato ogni tipo di valore in ogni database

ValorePostgreSQLMySQLMariaDBSQLiteSQL ServerOracle
Sì e nobooleantinyint(1)tinyint(1)BOOLEANbitNUMBER(1)
Numeri interiintegerintintINTEGERintNUMBER(10)
Numeri interi grandibigintbigintbigintINTEGERbigintNUMBER(19)
Decimalinumeric(p,s)decimal(p,s)doubledecimal(p,s)doubleNUMERIC(p,s)TEXTdecimal(p,s)NUMBER(p,s)
Numeri in virgola mobiledouble precisiondoubledoubleREALfloatBINARY_DOUBLE
DatedatedatedateDATEdateDATE
Oraritimetime(6)timetime(6)timeTIMEtimeINTERVAL DAY(0) TO SECOND
Date con oratimestampdatetime(6)datetimedatetime(6)datetimeDATETIMEdatetime2TIMESTAMP
Date con ora e fusotimestamptzdatetime(6)datetimedatetime(6)datetimeDATETIMEdatetimeoffsetTIMESTAMP WITH TIME ZONE
Testotextvarchar(n)textmediumtextlongtextvarchar(n)textmediumtextlongtextTEXTnvarchar(n)nvarchar(max)VARCHAR2(n CHAR)CLOB

Domande su CSV in SQL

Non trovi la risposta? Scrivici dalla pagina dei contatti e ti risponde una persona. Pagina dei contatti

Come converto CSV in SQL?

Trascina il file sul convertitore in cima a questa pagina e scegli il tuo database: PostgreSQL, MySQL, MariaDB, SQLite, SQL Server o Oracle. Ognuno riceve i tipi che supporta. Scarica lo script ed eseguilo nel tuo database.

E se il mio CSV usa punti e virgola o tabulazioni?

Il separatore viene rilevato: virgola, punto e virgola, tabulazione o barra verticale. Puoi anche impostarlo in Altre opzioni. Con il punto e virgola, le virgole decimali come 1.234,50 vengono lette come numeri.

Quali tipi usa in ogni database?

Ogni database ha i suoi: i valori sì e no sono boolean in PostgreSQL, tinyint(1) in MySQL e MariaDB, bit in SQL Server e NUMBER(1) in Oracle. La tabella in questa pagina elenca ogni tipo di valore.

Mantiene gli zeri iniziali?

Sì. Un codice come 00412 resta testo in ogni database, scritto come '00412', quindi nessuno zero va perso.

Può caricare i dati senza uno script?

Sì. La riga di comando carica gratis in SQLite e, con IntoSQL Pro, l'app desktop e la riga di comando caricano in PostgreSQL, MySQL e MariaDB. Per SQL Server e Oracle, esegui lo script.

Quanto può essere grande il file CSV?

Il browser legge il CSV man mano che arriva, quindi funzionano file di diversi gigabyte. Su un portatile Apple M4 la riga di comando converte un CSV di 174 MB con un milione di righe in meno di un secondo.