Você pode importar dados de um arquivo CSV para um banco de dados SQLite.
Para importar dados para o SQLite, use o
.import
comando. Este comando aceita um nome de arquivo e um nome de tabela. O nome do arquivo é o arquivo do qual os dados são lidos, o nome da tabela é a tabela para a qual os dados serão importados. Se a tabela não existir, ela será criada automaticamente, com base nos dados do arquivo CSV.
CSV para nova tabela
Este exemplo importa o conteúdo de um arquivo CSV para uma tabela que não existe atualmente. Portanto, uma nova tabela será criada com base nos dados do arquivo CSV.
Usaremos o mesmo arquivo CSV que exportamos anteriormente.
.mode csv .import /Users/quackit/sqlite/dumps/catalog.csv Catalog
Certifique-se de usar
.mode csv
antes do .import
pois isso impede que o utilitário de linha de comando tente interpretar o texto do arquivo de entrada como algum outro formato. Depois de executarmos isso, podemos executar um
.tables
comando para revisar nossas tabelas:sqlite> .tables Albums Albums2 Artists Catalog
A nova tabela ( Catálogo ) foi criado. Vamos fazer um
SELECT
nele para verificar o conteúdo:coluna
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
Você também pode querer mudar o modo de volta para
column
(ou qualquer outro modo que você estivesse usando) como eu fiz aqui. E vamos também verificar o esquema:
sqlite> .schema Catalog CREATE TABLE Catalog( "AlbumId" TEXT, "AlbumName" TEXT, "ArtistName" TEXT );
Tabela existente
Você também pode importar o arquivo CSV para uma tabela existente. Basta criar a tabela com as definições apropriadas e, em seguida, executar a importação.
No entanto, certifique-se de remover todos os cabeçalhos do arquivo CSV primeiro. Ao importar para uma tabela existente, todas linha no arquivo CSV é lida como uma linha na tabela. Portanto, se você incluir a linha de cabeçalho, ela se tornará a primeira linha de dados da sua tabela.
Agora vamos criar uma nova tabela chamada Genres e preenchê-lo a partir de um arquivo CSV.
Aqui está o conteúdo do arquivo CSV:
1,Rock 2,Country 3,Pop 4,Comedy 5,Jazz 6,Blues 7,Techno
Crie a nova tabela:
CREATE TABLE Genres( GenreId INTEGER PRIMARY KEY, Genre TEXT NOT NULL );
Verifique se está lá:
sqlite> .tables Albums Albums2 Artists Catalog Genres
Agora importe o arquivo CSV:
.mode csv .import /Users/quackit/sqlite/dumps/genres.csv Genres
Agora verifique se os dados entraram (e volte para
column
modo):sqlite> .mode column sqlite> SELECT * FROM Genres; GenreId Genre -------- -------------------- 1 Rock 2 Country 3 Pop 4 Comedy 5 Jazz 6 Blues 7 Techno