SQLite
 sql >> Database >  >> RDS >> SQLite

SQLite - Importa dati da un file CSV

Puoi importare dati da un file CSV in un database SQLite.

Per importare dati in SQLite, usa .import comando. Questo comando accetta un nome file e un nome tabella.

Il nome del file è il file da cui vengono letti i dati, il nome della tabella è la tabella in cui verranno importati i dati. Se la tabella non esiste, verrà creata automaticamente, in base ai dati nel file CSV.

CSV su nuova tabella

Questo esempio importa il contenuto di un file CSV in una tabella che attualmente non esiste. Pertanto, verrà creata una nuova tabella in base ai dati nel file CSV.

Utilizzeremo lo stesso file CSV che abbiamo esportato in precedenza.

.mode csv
.import /Users/quackit/sqlite/dumps/catalog.csv Catalog

Assicurati di utilizzare .mode csv prima del .import poiché ciò impedisce all'utilità della riga di comando di tentare di interpretare il testo del file di input come un altro formato.

Dopo averlo eseguito, possiamo eseguire un .tables comando per rivedere le nostre tabelle:

sqlite> .tables
Albums   Albums2  Artists  Catalog

La nuova tabella ( Catalogo ) è stato creato. Facciamo un SELECT su di esso per verificarne il contenuto:

Colonna
sqlite> .mode column
sqlite> SELECT * FROM Catalog;
AlbumId   AlbumName             ArtistName  
--------  --------------------  ------------
1         Killers               Iron Maiden 
2         Powerslave            Iron Maiden 
12        Somewhere in Time     Iron Maiden 
3         Surfing with the Ali  Joe Satriani
10        Flying in a Blue Dre  Joe Satriani
11        Black Swans and Worm  Joe Satriani
6         Out of the Loop       Mr Percival 
7         Suck on This          Primus      
8         Pork Soda             Primus      
9         Sailing the Seas of   Primus

Potresti anche voler ripristinare la modalità su column (o qualsiasi altra modalità che stavi utilizzando) come ho fatto qui.

E controlliamo anche lo schema:

sqlite> .schema Catalog
CREATE TABLE Catalog(
  "AlbumId" TEXT,
  "AlbumName" TEXT,
  "ArtistName" TEXT
);

Tabella esistente

Puoi anche importare il file CSV in una tabella esistente. Basta creare la tabella con le definizioni appropriate, quindi eseguire l'importazione.

Tuttavia, assicurati di rimuovere prima tutte le intestazioni dal file CSV. Quando importi in una tabella esistente, ogni la riga nel file CSV viene letta come riga nella tabella. Quindi, se includi la riga di intestazione, diventerà la prima riga di dati nella tabella.

Ora creeremo una nuova tabella chiamata Generi e compilalo da un file CSV.

Ecco il contenuto del file CSV:

1,Rock
2,Country
3,Pop
4,Comedy
5,Jazz
6,Blues
7,Techno

Crea la nuova tabella:

CREATE TABLE Genres(
  GenreId    INTEGER PRIMARY KEY, 
  Genre      TEXT NOT NULL
);

Controlla che sia lì:

sqlite> .tables
Albums   Albums2  Artists  Catalog  Genres 

Ora importa il file CSV:

.mode csv
.import /Users/quackit/sqlite/dumps/genres.csv Genres

Ora verifica che i dati siano entrati (e torna a column modalità):

sqlite> .mode column
sqlite> SELECT * FROM Genres;
GenreId   Genre               
--------  --------------------
1         Rock                
2         Country             
3         Pop                 
4         Comedy              
5         Jazz                
6         Blues               
7         Techno