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

SQLite - Exportar dados para um arquivo CSV


Você pode exportar dados de um banco de dados SQLite para um arquivo CSV. Você pode exportar uma tabela inteira ou os resultados de uma consulta.

Para exportar dados para um arquivo CSV, use o .once comando, seguido pelo caminho/nome do arquivo no qual você gostaria que o arquivo fosse gravado.

Tabela para arquivo CSV


Este exemplo exporta o conteúdo do arquivo Artists tabela para um arquivo CSV:
.header on
.mode csv
.once /Users/quackit/sqlite/dumps/artists.csv
SELECT * FROM Artists;

Explicação do código:
  1. Primeiro, habilitamos os cabeçalhos. Isso fará com que os nomes das colunas sejam usados ​​como cabeçalhos no arquivo CSV. Isso é opcional. Se você desativar os cabeçalhos, o arquivo CSV simplesmente não conterá nenhum.
  2. Então ativamos o modo csv ( .mode csv ).
  3. A próxima linha (começando com .once ) faz com que a saída seja gravada no arquivo CSV.
  4. A última coisa que escrevemos é a consulta real (neste caso, um SELECT declaração na mesa.).

Depois de executar esse código, um arquivo CSV é criado com o seguinte conteúdo:
ArtistId,ArtistName,Bio
1,"Joe Satriani",
2,"Steve Vai",
3,"The Tea Party",
4,Noiseworks,
5,"Wayne Jury",
6,"Mr Percival",
7,"Iron Maiden",
8,Atmasphere,"Australian jazz band centred around polyrhythms."
9,"Ian Moss",
10,Magnum,
13,Primus,
14,"Pat Metheny",
15,"Frank Gambale",
16,"Mothers of Invention",

Participar de consultas


Você não está limitado a apenas produzir uma única tabela. Você pode gerar qualquer consulta. Aqui está uma consulta que seleciona dados de duas tabelas e gera o resultado em um arquivo CSV.
.header on
.mode csv
.once /Users/quackit/sqlite/dumps/catalog.csv
SELECT AlbumId, AlbumName, ArtistName  
FROM Artists AS a 
  INNER JOIN Albums AS b 
  ON a.ArtistId = b.ArtistId
ORDER BY ArtistName;

Isso resulta em um arquivo CSV com o seguinte conteúdo:
AlbumId,AlbumName,ArtistName
1,Killers,"Iron Maiden"
2,Powerslave,"Iron Maiden"
12,"Somewhere in Time","Iron Maiden"
3,"Surfing with the Alien","Joe Satriani"
10,"Flying in a Blue Dream","Joe Satriani"
11,"Black Swans and Wormhole Wizards","Joe Satriani"
6,"Out of the Loop","Mr Percival"
7,"Suck on This",Primus
8,"Pork Soda",Primus
9,"Sailing the Seas of Cheese",Primus

Abrir o arquivo CSV automaticamente


Você pode usar o .system comando para abrir automaticamente o arquivo no programa de planilhas do seu computador, como Excel, OpenOffice, LibreOffice, etc.

Coloque o .system código na última linha (após o SELECT demonstração). Assim:
.header on
.mode csv
.once /Users/quackit/sqlite/dumps/catalog.csv
SELECT AlbumId, AlbumName, ArtistName  
FROM Artists AS a 
  INNER JOIN Albums AS b 
  ON a.ArtistId = b.ArtistId
ORDER BY ArtistName;
.system open /Users/quackit/sqlite/dumps/catalog.csv

O código exato que você usa dependerá do seu sistema operacional.
  • No Windows, use .system seguido pelo nome do arquivo.
  • No Mac, use .system open seguido pelo nome do arquivo.
  • Em sistemas Linux e Unix, use .system seguido pelo nome do programa para abrir o arquivo, seguido pelo nome do arquivo. Por exemplo, .system libreoffice /dumps/file.csv

Descarregar uma tabela ou banco de dados


Você também pode despejar uma tabela ou até mesmo todo o banco de dados em um arquivo de texto ASCII usando o .dump comando.