Se você precisa de um banco de dados com sintaxe SQL, mas não deseja ter o overhead de instalar um SGBD, o banco de dados SQLite é uma alternativa a ser levada em consideração.
O SQLite é um banco de dados para ser utilizado embutido com conexão através de bibliotecas próprias da linguagem.
Aqui mostraremos em poucas linhas como você pode sair por usando SQL para armazenar seus dados.
Instalando o módulo SQLite no Python
Como o sistema que foi usado para esse escrever essa dica foi o Ubuntu, usamos o "apt" para instalar a biblioteca sqlite no Python, já que o pacote não veio instalado por padrão:
# apt-get install python-sqlite
Vamos ao código:
import sqlite
# Cria a conexão como o banco, que no caso do sqlite
# corresponde a um arquivo, caso o arquivo não exista ele é criado
connection = sqlite.connect("demo.db")
# Cria o cursor para enviar comandos
cur = connection.cursor()
# A partir de agora já podemos executar nossas queries através
# da função execute do objeto cursor
# para criar uma tabela podemos usar os seguintes comando
# Definição da query
sql = "CREATE TABLE contatos(id NUMBER, nome VARCHAR, fone VARCHAR)"
# Execução da query
cur.execute(sql)
# Para inserir dados no nosso banco de dados usamos
sql = "INSERT INTO contatos(id,nome,fone) VALUES(1,'fulano', '999-9999')"
cur.execute(sql)
# A linha seguinte é usada para consolidar os dados na base
connection.commit()
# E finalmente para consultar os dados no nosso banco de dados, usamos
sql = "SELECT * FROM contatos"
cur.execute (sql)
result = cur.fetchall()
for contato in result:
print "Nome: %s\tFone: %s" %(contato[1],contato[2])
Conclusão
Essa dica é apenas o ponto de partida para aqueles que desejam usar o SQLite dentro de seus programas em Python. Através dele é possível aprender a sintaxe do SQL para construir desde programinhas simples para uma agenda até coisas mais complexas.
[3] Comentário enviado por leandro.miranda em 12/03/2008 - 16:50h
Eu nao consigo imprimir os dados, ja tentei de tudo, fiz e refiz diversas vezes rsrs.. tem alguma documentação adicional pra me ajudar a aprender python com sqlite?
for contato in result:
... print "Nome: %s\tFone: %s" %(contato[1],contato[2])
File "<stdin>", line 2
print "Nome: %s\tFone: %s" %(contato[1],contato[2])
^