Du kan importera data från en CSV-fil till en SQLite-databas.
För att importera data till SQLite, använd .import
kommando. Detta kommando accepterar ett filnamn och ett tabellnamn.
Filnamnet är filen från vilken data läses, tabellnamnet är den tabell som data kommer att importeras till. Om tabellen inte finns skapas den automatiskt, baserat på data i CSV-filen.
CSV till ny tabell
Det här exemplet importerar innehållet i en CSV-fil till en tabell som för närvarande inte finns. Därför kommer en ny tabell att skapas baserat på data i CSV-filen.
Vi använder samma CSV-fil som vi exporterade tidigare.
.mode csv .import /Users/quackit/sqlite/dumps/catalog.csv Catalog
Se till att använda .mode csv
före .import
eftersom detta förhindrar kommandoradsverktyget från att försöka tolka indatafilens text som något annat format.
När vi har kört det kan vi köra en .tables
kommando för att granska våra tabeller:
sqlite> .tables Albums Albums2 Artists Catalog
Den nya tabellen (
Katalog
) Har skapats. Låt oss göra en SELECT
på den för att kontrollera innehållet:
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 kanske också vill ändra läget tillbaka till column
(eller vilket annat läge du än använde) som jag gjorde här.
Och låt oss också kontrollera schemat:
sqlite> .schema Catalog CREATE TABLE Catalog( "AlbumId" TEXT, "AlbumName" TEXT, "ArtistName" TEXT );
Befintlig tabell
Du kan också importera CSV-filen till en befintlig tabell. Skapa bara tabellen med lämpliga definitioner och kör sedan importen.
Se dock till att ta bort alla rubriker från CSV-filen först. När du importerar till en befintlig tabell, varje rad i CSV-filen läses in som en rad i tabellen. Så om du inkluderar rubrikraden kommer den att bli den första dataraden i din tabell.
Vi kommer nu att skapa en ny tabell som heter Genres och fyll i den från en CSV-fil.
Här är innehållet i CSV-filen:
1,Rock 2,Country 3,Pop 4,Comedy 5,Jazz 6,Blues 7,Techno
Skapa den nya tabellen:
CREATE TABLE Genres( GenreId INTEGER PRIMARY KEY, Genre TEXT NOT NULL );
Kontrollera att den finns där:
sqlite> .tables Albums Albums2 Artists Catalog Genres
Importera nu CSV-filen:
.mode csv .import /Users/quackit/sqlite/dumps/genres.csv Genres
Verifiera nu att data gick in (och ändra tillbaka till column
läge):
sqlite> .mode column sqlite> SELECT * FROM Genres; GenreId Genre -------- -------------------- 1 Rock 2 Country 3 Pop 4 Comedy 5 Jazz 6 Blues 7 Techno