De acordo com as Leis 12.965/2014 e 13.709/2018, que regulam o uso da Internet e o tratamento de dados pessoais no Brasil, ao me inscrever na newsletter do portal DICAS-L, autorizo o envio de notificações por e-mail ou outros meios e declaro estar ciente e concordar com seus Termos de Uso e Política de Privacidade.
Colaboração: Cesar Brod
Data de Publicação: 17 de março de 2013
Antes de começar, você deve ter instalado, em sua máquina, a linguagem de programação Python e o servidor de base de dados SQLite3. No Debian e seus derivados isto é feito com o comando abaixo.
sudo apt-get install python sqlite3
Agora, visite a página do SQLet e baixe o programa. Abaixo estão os comandos para baixar a versão 1.0:
wget http://www.umlet.com/sql_on_linux_command_line/sqlet_1_0/sqlet.zip unzip sqlet.zip chmod +x sqlet.py
Crie um arquivo texto chamado "exemplo.csv" com o conteúdo similar ao que está abaixo:
nome,idade,sexo Cesar,49,M Meire,48,F Aline,24,F Ana Luiza,20,F Natalia,26,F
Agora, experimente os seguintes comandos (observe a saída logo abaixo deles, nos exemplos abaixo):
# sqlet.py -d',' -A exemplo.csv 'select * from A;' | sqlite3 nome,idade,sexo Cesar,49,M Meire,48,F Aline,24,F Ana Luiza,20,F Natalia,26,F
Você pode observar que a chave -d indica qual o delimitador de texto entre os dados do arquivo. A chave -A indica que, para o comando SQL, o nome da base de dados será A. O programa sqlet.py "transforma" o seu arquivo csv em um dump SQL e o envia, junto com o seu comando, para o gerenciador de base de dados sqlite3. Se você quiser ver qual a mágica está sendo feita, digite simplesmente:
# sqlet.py -d',' -A exemplo.csv 'select * from A;'
Observe o resultado:
------ ------ ------ ------ ------ ------ ---------- -- SQLet interprets its arguments to generate the following SQL commands; pipe to sqlite3 to execute ------ ------ ------ ------ ------ ------ ---------- -- defaults: .separator ' ' .header off ------ ------ ------ ------ ------ ------ ---------- .separator ',' -- new table.. -- table name: A -- file name: exemplo.csv -- colIndex -- colName -- colType -- sampleValue -- 1 -- a1 -- TEXT -- nome -- 2 -- a2 -- TEXT -- idade -- 3 -- a3 -- TEXT -- sexo create table A([a1] TEXT, [a2] TEXT, [a3] TEXT); .import exemplo.csv A ------ ------ ------ ------ ------ ------ ---------- select * from A; ------ ------ ------ ------ ------ ------ ---------- drop table A; ------ ------ ------ ------ ------ ------ ----------
Agora, diga se isso não é muito lindo!
Experimente outras consultas (observe que a chave -h1 faz com que a primeira linha seja tratada como nome de colunas):
# sqlet.py -h1 -d',' -A exemplo.csv 'select * from A where sexo="M";' | sqlite3 Cesar,49,M # sqlet.py -h1 -d',' -A exemplo.csv 'select nome,sexo from A where idade<"40";' | sqlite3 Aline,F Ana Luiza,F Natalia,F
Imagine as consultas que você pode fazer, por exemplo, nos arquivos textos fornecidos pelo Portal de Dados Abertos do Governo Federal!
O SQLet permite que você use vários arquivos de texto simultaneamente, criando buscas bastante complexas. Saiba mais no site do projeto.
Vai comprar os materiais escolares para 2013? Contribua com o ano letivo das crianças da AMAM. Doe livros, cadernos e materiais escolares. Faça parte dessa corrente. Faça a diferença. Curta a página da AMAM no Facebook.
Cesar Brod ministra cursos in-house adequados à necessidade de sua empresa, além de atuar como coach de equipes ágeis. Visite nosso portal para saber mais ou entre em contato diretamente com o autor para mais informações.
This policy contains information about your privacy. By posting, you are declaring that you understand this policy:
This policy is subject to change at any time and without notice.
These terms and conditions contain rules about posting comments. By submitting a comment, you are declaring that you agree with these rules:
Failure to comply with these rules may result in being banned from submitting further comments.
These terms and conditions are subject to change at any time and without notice.
Comentários