SQLite
 sql >> Datenbank >  >> RDS >> SQLite

SQLite - Importieren Sie Daten aus einer CSV-Datei

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