SQLite
 sql >> Base de Dados >  >> RDS >> SQLite

SQLite - Importar dados de um arquivo CSV


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