Introdução ao SQLite3

sqlite3_basico

De acordo com o autor, o SQLite é a implementação um engine de banco de dados SQL transacional, autocontido e que dispensa servidor ou mesmo procedimento de instalação para funcionar. Ele é gratuito, de domínio público e poden podem* ser utilizado para qualquer finalidade. Hoje é o banco de dados mais amplamente usado no mundo, se você tem um dispositivo rodando Android, iOS ou mesmo a finada Asha Platform (da Nokia) você usa o SQLite.

A ideia aqui é passar um básico do uso do uso SQLite e usando-o diretamente pela linha de comando, mas são conceitos válidos para qualquer outra linguagem de programação.

(*) Que feio, erro primário!

Instalação* do SQLite3

Ele está disponível em quase todas as distribuições de Linux e como é usado por vários aplicativos é capaz de até já estar instalado mas, mesmo assim, use:

$ sudo apt-get install sqlite3

Ou, se for o caso:

$ sudo yum install sqlite3

No FreeBSD é (e em outros UN*X baseados em ports tree a sintaxe será algo bem parecido):

$ sudo pkg install sqlite3

No (Mac)OS X ele pode ser instalado, ou não, pelo MacPorts e no Windows até pode ser executado fora do Cygwin mas como a ideia é justamente usar na linha de comando, vamos para de Cygwin:

$ apt-cyg install sqlite3

E uma vez instalado já é possível criar um banco de dados.

(*) Sim, ele não precisa ser instalado mas é necessário trazer o programa e a documentação para o seu sistema, certo?

Criando um banco de dados

Basicamente basta digitar sqlite3 «nome do arquivo com o banco de dados» e pronto:

$ sqlite3 teste.db
SQLite version 3.8.7.4 2014-12-09 01:34:36
Enter ".help" for usage hints.
sqlite>

Este é o console de operação e ele ficará aguardando a entrada de comandos mas por enquanto basta digitar  .quit (ou <CTRL>+<D>) para sair.

Criando uma tabela

No seu editor de textos predileto digite e salve o arquivo com o nome de agenda.sql:

-- 
-- criação do banco no SQLite3
--
CREATE TABLE 'telefones'
(
        'id' INTEGER PRIMARY KEY,
        'nome' VARCHAR(32),
        'telefone' VARCHAR(20)
);

Sim o bom, velho e pra lá de batido exemplo de agenda de telefones Execute-o assim:

$ sqlite3 agenda.db < agenda.sql

Nada aconteceu?

Na verdade aconteceu sim mas o SQLite apenas não retornou mensagem alguma, veja só:

$ sqlite3 agenda.db 
SQLite version 3.8.7.4 2014-12-09 01:34:36
Enter ".help" for usage hints.
sqlite> .schema telefones
CREATE TABLE 'telefones'
(
        'id' INTEGER PRIMARY KEY,
        'nome' VARCHAR(32),
        'telefone' VARCHAR(20)
);

Se quiser ter um retorno inclua o comando .dump no final do arquivo SQL.

Inserindo registros

Hora de inserir um registro e diretamente pela linha de comando com o comando INSERT:

echo "INSERT INTO 'telefones' (nome,telefone) VALUES ('Fulano da Silva','12345678');" | sqlite3 agenda.db

A partir de values é possível ir acrescentando mais registros sem a necessidade de se repetir um comando de inserção para cada registro:

echo "INSERT INTO 'telefones' (nome,telefone) VALUES ('Fulano da Silva','12345678'),('Sicrano de Souza','87654321');" | sqlite3 agenda.db

Consultando registros

A consulta é feita com o comando SELECT:

$ echo "SELECT * FROM telefones;" | sqlite3 agenda.db
1|Fulano de Tal|12345678
2|Sicrano de Souza|87654321

Ou sendo mais específico:

$ echo "SELECT * FROM telefones WHERE id=1;" | sqlite3 agenda.db
1|Fulano da Silva|12345678

O separador padrão utilizado pelo SQLite é o pipe (“|”) mas pode ser alterado com o uso do parâmetro -separator:

$ echo "SELECT * FROM telefones WHERE id=2;" | sqlite3 -separator '%' agenda.db
2%Sicrano de Souza%87654321

Modificando registros

Para alterar o conteúdo de um ou mais registros, use o UPDATE:

$ echo "UPDATE telefones SET telefone='43218765' WHERE id=1;

E o resultado:

$ echo "SELECT * FROM telefones;" | sqlite3 agenda.db
1|Fulano da Silva|43218765
2|Sicrano de Souza|87654321

E para encerrar…

Apagando registros

E finalmente, pare remover, o comando DELETE:

$ echo "DELETE FROM telefones WHERE id=2;" | sqlite3 agenda.db

 

E para fechar eu recomendo o SQLite Tutorial de autoria do Mike Chirico, é bem mais completo que este aqui e acrescenta detalhes como a criação de triggers e o uso do SQLite em linguagens de programação como C/C++ e Perl.

Anúncios

Um comentário sobre “Introdução ao SQLite3

  1. Pingback: REST em Python com Bottle – parte 1 | giovannireisnunes

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s