U kunt gegevens uit een CSV-bestand importeren in een SQLite-database.
Om gegevens in SQLite te importeren, gebruikt u de .import
opdracht. Dit commando accepteert een bestandsnaam en een tabelnaam.
De bestandsnaam is het bestand waaruit de gegevens worden gelezen, de tabelnaam is de tabel waarin de gegevens worden geïmporteerd. Als de tabel niet bestaat, wordt deze automatisch gemaakt op basis van de gegevens in het CSV-bestand.
CSV naar nieuwe tabel
In dit voorbeeld wordt de inhoud van een CSV-bestand geïmporteerd naar een tabel die momenteel niet bestaat. Daarom wordt er een nieuwe tabel gemaakt op basis van de gegevens in het CSV-bestand.
We gebruiken hetzelfde CSV-bestand dat we eerder hebben geëxporteerd.
.mode csv .import /Users/quackit/sqlite/dumps/catalog.csv Catalog
Zorg ervoor dat u .mode csv
. gebruikt voor de .import
omdat dit voorkomt dat het opdrachtregelprogramma probeert de tekst van het invoerbestand te interpreteren als een ander formaat.
Nadat we dat hebben uitgevoerd, kunnen we een .tables
. uitvoeren commando om onze tabellen te bekijken:
sqlite> .tables Albums Albums2 Artists Catalog
De nieuwe tabel (
Catalogus
) Is gemaakt. Laten we een SELECT
doen erop om de inhoud te controleren:
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
Misschien wilt u de modus ook terugzetten naar column
(of welke andere modus je ook gebruikte) zoals ik hier deed.
En laten we ook het schema eens bekijken:
sqlite> .schema Catalog CREATE TABLE Catalog( "AlbumId" TEXT, "AlbumName" TEXT, "ArtistName" TEXT );
Bestaande tabel
U kunt het CSV-bestand ook in een bestaande tabel importeren. Maak gewoon de tabel met de juiste definities en voer vervolgens de import uit.
Zorg er echter voor dat u eerst eventuele headers uit het CSV-bestand verwijdert. Wanneer u importeert naar een bestaande tabel, elke regel in het CSV-bestand wordt ingelezen als een rij in de tabel. Dus als u de koprij opneemt, wordt deze de eerste regel met gegevens in uw tabel.
We zullen nu een nieuwe tabel maken met de naam Genres en vul het in vanuit een CSV-bestand.
Hier is de inhoud van het CSV-bestand:
1,Rock 2,Country 3,Pop 4,Comedy 5,Jazz 6,Blues 7,Techno
Maak de nieuwe tabel:
CREATE TABLE Genres( GenreId INTEGER PRIMARY KEY, Genre TEXT NOT NULL );
Controleer of het er is:
sqlite> .tables Albums Albums2 Artists Catalog Genres
Importeer nu het CSV-bestand:
.mode csv .import /Users/quackit/sqlite/dumps/genres.csv Genres
Controleer nu of de gegevens zijn ingevoerd (en verander terug naar column
modus):
sqlite> .mode column sqlite> SELECT * FROM Genres; GenreId Genre -------- -------------------- 1 Rock 2 Country 3 Pop 4 Comedy 5 Jazz 6 Blues 7 Techno