Sie können Daten aus einer CSV-Datei in eine SQLite-Datenbank importieren.
Um Daten in SQLite zu importieren, verwenden Sie .import
Befehl. Dieser Befehl akzeptiert einen Dateinamen und einen Tabellennamen.
Der Dateiname ist die Datei, aus der die Daten gelesen werden, der Tabellenname ist die Tabelle, in die die Daten importiert werden. Wenn die Tabelle nicht existiert, wird sie basierend auf den Daten in der CSV-Datei automatisch erstellt.
CSV in neue Tabelle
In diesem Beispiel wird der Inhalt einer CSV-Datei in eine derzeit nicht vorhandene Tabelle importiert. Daher wird basierend auf den Daten in der CSV-Datei eine neue Tabelle erstellt.
Wir verwenden dieselbe CSV-Datei, die wir zuvor exportiert haben.
.mode csv .import /Users/quackit/sqlite/dumps/catalog.csv Catalog
Achten Sie darauf, .mode csv
zu verwenden vor dem .import
da dies verhindert, dass das Befehlszeilenprogramm versucht, den Text der Eingabedatei in einem anderen Format zu interpretieren.
Nachdem wir das ausgeführt haben, können wir eine .tables
ausführen Befehl zum Überprüfen unserer Tabellen:
sqlite> .tables Albums Albums2 Artists Catalog
Die neue Tabelle (
Catalog
) wurde erschaffen. Machen wir ein SELECT
darauf, um den Inhalt zu überprüfen:
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
Möglicherweise möchten Sie den Modus auch wieder auf column
ändern (oder welchen anderen Modus Sie auch immer verwendet haben) wie ich es hier getan habe.
Und lassen Sie uns auch das Schema überprüfen:
sqlite> .schema Catalog CREATE TABLE Catalog( "AlbumId" TEXT, "AlbumName" TEXT, "ArtistName" TEXT );
Bestehende Tabelle
Sie können die CSV-Datei auch in eine vorhandene Tabelle importieren. Erstellen Sie einfach die Tabelle mit den entsprechenden Definitionen und führen Sie dann den Import aus.
Stellen Sie jedoch sicher, dass Sie zuerst alle Header aus der CSV-Datei entfernen. Wenn Sie in eine vorhandene Tabelle importieren, alle Zeile in der CSV-Datei wird als Zeile in die Tabelle eingelesen. Wenn Sie also die Kopfzeile einfügen, wird sie zur ersten Datenzeile in Ihrer Tabelle.
Wir erstellen nun eine neue Tabelle mit dem Namen Genres und aus einer CSV-Datei füllen.
Hier sind die Inhalte der CSV-Datei:
1,Rock 2,Country 3,Pop 4,Comedy 5,Jazz 6,Blues 7,Techno
Erstellen Sie die neue Tabelle:
CREATE TABLE Genres( GenreId INTEGER PRIMARY KEY, Genre TEXT NOT NULL );
Überprüfen Sie, ob es vorhanden ist:
sqlite> .tables Albums Albums2 Artists Catalog Genres
Importieren Sie nun die CSV-Datei:
.mode csv .import /Users/quackit/sqlite/dumps/genres.csv Genres
Überprüfen Sie nun, ob die Daten eingegangen sind (und wechseln Sie zurück zu 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