Du kan importere data fra en CSV-fil til en SQLite-database.
For at importere data til SQLite skal du bruge .import
kommando. Denne kommando accepterer et filnavn og et tabelnavn.
Filnavnet er den fil, som dataene læses fra, tabelnavnet er den tabel, som dataene vil blive importeret til. Hvis tabellen ikke eksisterer, oprettes den automatisk, baseret på dataene i CSV-filen.
CSV til ny tabel
Dette eksempel importerer indholdet af en CSV-fil til en tabel, der ikke eksisterer i øjeblikket. Derfor vil der blive oprettet en ny tabel baseret på dataene i CSV-filen.
Vi bruger den samme CSV-fil, som vi tidligere eksporterede.
.mode csv .import /Users/quackit/sqlite/dumps/catalog.csv Catalog
Sørg for at bruge .mode csv
før .import
da dette forhindrer kommandolinjeværktøjet i at forsøge at fortolke inputfilteksten som et andet format.
Efter vi har kørt det, kan vi køre en .tables
kommando for at gennemgå vores tabeller:
sqlite> .tables Albums Albums2 Artists Catalog
Den nye tabel (
Katalog
) er blevet oprettet. Lad os lave en SELECT
på den for at kontrollere indholdet:
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
Du vil måske også ændre tilstanden tilbage til column
(eller hvilken anden tilstand du brugte), som jeg gjorde her.
Og lad os også tjekke skemaet:
sqlite> .schema Catalog CREATE TABLE Catalog( "AlbumId" TEXT, "AlbumName" TEXT, "ArtistName" TEXT );
Eksisterende tabel
Du kan også importere CSV-filen til en eksisterende tabel. Bare opret tabellen med de relevante definitioner, og kør derefter importen.
Sørg dog for at fjerne eventuelle overskrifter fra CSV-filen først. Når du importerer til en eksisterende tabel, hver linje i CSV-filen læses ind som en række i tabellen. Så hvis du inkluderer overskriftsrækken, bliver den den første linje med data i din tabel.
Vi vil nu oprette en ny tabel kaldet Genrer og udfyld den fra en CSV-fil.
Her er indholdet af CSV-filen:
1,Rock 2,Country 3,Pop 4,Comedy 5,Jazz 6,Blues 7,Techno
Opret den nye tabel:
CREATE TABLE Genres( GenreId INTEGER PRIMARY KEY, Genre TEXT NOT NULL );
Tjek, at den er der:
sqlite> .tables Albums Albums2 Artists Catalog Genres
Importer nu CSV-filen:
.mode csv .import /Users/quackit/sqlite/dumps/genres.csv Genres
Bekræft nu, at dataene er kommet ind (og skift tilbage til column
tilstand):
sqlite> .mode column sqlite> SELECT * FROM Genres; GenreId Genre -------- -------------------- 1 Rock 2 Country 3 Pop 4 Comedy 5 Jazz 6 Blues 7 Techno