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:
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