Możesz importować dane z pliku CSV do bazy danych SQLite.
Aby zaimportować dane do SQLite, użyj .import
Komenda. To polecenie akceptuje nazwę pliku i nazwę tabeli.
Nazwa pliku to plik, z którego odczytywane są dane, nazwa tabeli to tabela, do której dane będą importowane. Jeśli tabela nie istnieje, zostanie utworzona automatycznie na podstawie danych w pliku CSV.
CSV do nowej tabeli
Ten przykład importuje zawartość pliku CSV do tabeli, która obecnie nie istnieje. Dlatego nowa tabela zostanie utworzona na podstawie danych w pliku CSV.
Użyjemy tego samego pliku CSV, który wyeksportowaliśmy wcześniej.
.mode csv .import /Users/quackit/sqlite/dumps/catalog.csv Catalog
Pamiętaj, aby użyć .mode csv
przed .import
ponieważ zapobiega to próbie zinterpretowania tekstu pliku wejściowego przez narzędzie wiersza poleceń jako innego formatu.
Po uruchomieniu możemy uruchomić .tables
polecenie do przeglądania naszych tabel:
sqlite> .tables Albums Albums2 Artists Catalog
Nowa tabela (
Katalog
) został stworzony. Zróbmy SELECT
na nim, aby sprawdzić zawartość:
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
Możesz także zmienić tryb z powrotem na column
(lub w jakimkolwiek innym trybie, którego używałeś), tak jak ja tutaj.
Sprawdźmy też schemat:
sqlite> .schema Catalog CREATE TABLE Catalog( "AlbumId" TEXT, "AlbumName" TEXT, "ArtistName" TEXT );
Istniejąca tabela
Możesz także zaimportować plik CSV do istniejącej tabeli. Po prostu utwórz tabelę z odpowiednimi definicjami, a następnie uruchom import.
Pamiętaj jednak, aby najpierw usunąć wszystkie nagłówki z pliku CSV. Podczas importowania do istniejącej tabeli co wiersz w pliku CSV jest odczytywany jako wiersz w tabeli. Więc jeśli uwzględnisz wiersz nagłówka, stanie się on pierwszym wierszem danych w Twojej tabeli.
Utworzymy teraz nową tabelę o nazwie Genres i wypełnij go z pliku CSV.
Oto zawartość pliku CSV:
1,Rock 2,Country 3,Pop 4,Comedy 5,Jazz 6,Blues 7,Techno
Utwórz nową tabelę:
CREATE TABLE Genres( GenreId INTEGER PRIMARY KEY, Genre TEXT NOT NULL );
Sprawdź, czy tam jest:
sqlite> .tables Albums Albums2 Artists Catalog Genres
Teraz zaimportuj plik CSV:
.mode csv .import /Users/quackit/sqlite/dumps/genres.csv Genres
Teraz sprawdź, czy dane weszły (i zmień z powrotem na column
tryb):
sqlite> .mode column sqlite> SELECT * FROM Genres; GenreId Genre -------- -------------------- 1 Rock 2 Country 3 Pop 4 Comedy 5 Jazz 6 Blues 7 Techno