sql >> Database >  >> RDS >> SQLite

SQLite - Gegevens importeren uit een CSV-bestand

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             

  1. Scalaire UDF-inlining in SQL Server 2019

  2. Wat is een schema in SQL en hoe maak je het aan?

  3. Hoe te werken met PGpoint voor geolocatie met behulp van PostgreSQL?

  4. Mysql-dumps en -importen versnellen