Executando consultas SQL em arquivos CSV com SQLite

Em nosso cotidiano trabalhamos constantemente com planilhas e na dica de hoje vamos mostrar como realizar consultas avançadas utilizando a linguagem SQL em planilhas .CSV – Comma Separated Values ou Valores Separados por Virgula. Lembrando que qualquer planilha pode ser exportada para este formato, basta apenas exportar para csv.

SQLite é uma biblioteca em linguagem C que implementa um banco de dados SQL embutido. Programas que usam a biblioteca SQLite podem ter acesso a banco de dados SQL sem executar um processo SGBD separado. SQLite não é uma biblioteca cliente usada para conectar com um grande servidor de banco de dados, mas sim o próprio servidor. A biblioteca SQLite lê e escreve diretamente no arquivo de banco de dados no disco. ( wikipedia.org )

A SOLOWEB além de oferecer Hospedagem de Sites, Servidores Dedicados, Servidores VPS com o menor custo do Brasil, também desenvolve soluções de software para sua empresa, faça uma cotação sem custo, acesse: www.soloweb.com.br

Existe várias formas de importar e consultar arquivos csv para banco de dados, esta é apena mais uma forma simples e rápida.

Vamos utilizar um aquivo simples chamado pedidos.csv que em nosso exemplo vai representar alguns pedidos de um estabelecimento, com as seguintes colunas:

id = Identificador do pedido

data_pedido = Data do pedido

total_itens = Total de itens no pedido

valor_total = Valor total do pedido

id_cliente = Identificado do cliente

Dados de pedidos.csv exibidos em um editor de planilhas

Dados de pedidos.csv exibidos em um editor de texto

Para iniciarmos precisamos ter instalado o SQLITE3 em nosso sistema operacional

sudo apt install sqlite3

Este comando vai instalar no sistema Ubuntu, para outros sistemas consulte em https://www.sqlite.org

Tudo pronto, agora vamos iniciar fazendo uma consulta simples SQL em nosso arquivos CSV utilizando o utilitário de linha de comando do SQLite

sqlite3 :memory: -cmd '.mode csv' -cmd '.import pedidos.csv tb_pedido' 'SELECT * FROM tb_pedido'

Teremos a seguinte saída:

Para melhorar a visualização temos algumas opções, como por exemplo: -cmd ‘.mode column’

sqlite3 :memory: -cmd '.mode csv' -cmd '.import pedidos.csv tb_pedido' -cmd '.mode column' 'SELECT * FROM tb_pedido'

Entendendo nosso comando

Ao usar o :memory: para abrir um banco de dados na memória. Em seguida, usamos duas -cmd opções para ativar o modo CSV e importar o pedidos.csv arquivo para uma tabela que estamos nomeando como tb_pedido. Em seguida, ele executa a consulta SQL.

Existe outras formas tanto para importar estes arquivos como também para formatar a saída. Acesse https://www.sqlite.org/docs.html

Agora vamos fazer mais um teste com uma consulta que irá agrupar e contar o pedidos pela quantidade de itens e uma média do valor total destes pedidos agrupados.

SELECT total_itens, COUNT(*), AVG(valor_total) FROM tb_pedido GROUP BY total_itens
sqlite3 :memory: -cmd '.mode csv' -cmd '.import pedidos.csv tb_pedido' -cmd '.mode column' 'SELECT total_itens, COUNT(*), AVG(valor_total) FROM tb_pedido GROUP BY total_itens'

Existe diversos ferramentas para manipular SQL que dá suporte ao SQLite, um deles é o DB Browser for SQLite https://sqlitebrowser.org/ e em uma busca rápida no google encontrará outras opções.

Esperamos que este post seja útil, siga-nos nas redes que estaremos sempre postando novas dicas.

E lembrando que a SOLOWEB além de oferecer Hospedagem de Sites, Servidores Dedicados, Servidores VPS com o menos custo do Brasil, também desenvolve soluções de software para sua empresa, faça uma cotação sem custo, acesse: www.soloweb.com.br