Você está na página 1de 27

Daniel Filype Silva Barreto

Mrcio Srgio Soares Austregsilo


Database
Carncia de acesso nativo
Principais banco de dados:
SQLite
MySQL
PostgreSQL
Interbase/Firebird
Oracle
Daniel Filype Silva Barreto Mrcio Srgio Soares Austregsilo
Importando os drivers
Daniel Filype Silva Barreto Mrcio Srgio Soares Austregsilo
Conexo
MySQL
#Atribui-se uma varivel qualquer conexo com o banco de dados.
Nos exemplos utilizados nesta apresentao, a varivel escolhida foi
con
SQLite
Daniel Filype Silva Barreto Mrcio Srgio Soares Austregsilo
Conexo
PostgreSQL
Interbase/Firebird
Daniel Filype Silva Barreto Mrcio Srgio Soares Austregsilo
Conexo
MS-SQL
Oracle
Daniel Filype Silva Barreto Mrcio Srgio Soares Austregsilo
Uso
Obtendo uma transao (cursor)
#Cursor um apontador que faz o elo entre o cdigo do Python e o
banco de dados. Para cri-lo, utiliza-se uma varivel qualquer que
recebe o nome da sua conexo (no nosso caso, con) seguida de
.cursor()
Daniel Filype Silva Barreto Mrcio Srgio Soares Austregsilo
Uso
Criando banco de dados
#O nosso cursor executa o comando de criao do banco de dados
chamado banco_de_dados. Ateno: este comando s precisa ser
executado uma nica vez, caso contrrio o programa retornar um
erro constando que o database banco_de_dados j existe.
Daniel Filype Silva Barreto Mrcio Srgio Soares Austregsilo
Uso
Criando uma tabela
#Ordenamos que o nosso cursor execute o comando de criar uma
tabela, damos um nome nossa tabela, especificamos os campos
que ela possui e seus respectivos tipos. Ex.: se campo1 for um
campo do tipo string, o declaramos campo1 varchar(50), podendo,
assim, armazenar strings de at 50 characters. Obs.: este comando
s precisa ser executado uma nica vez. Caso contrrio, o programa
retornar um erro.
Daniel Filype Silva Barreto Mrcio Srgio Soares Austregsilo
Uso
Inserindo dados no database
#O cursor executa o comando de inserir dados nos campos da nossa
tabela previamente criada. Aps VALUES, colocamos os tipos de
variveis cujo BD ir tratar. Ex.: se estivssemos falando de trs
strings, o correto seria haver %s,%s,%s dentro dos parnteses. J
valor1, valor2 e valor3 seriam as variveis que receberam a
entrada do usurio no prompt de comando
Daniel Filype Silva Barreto Mrcio Srgio Soares Austregsilo
Uso
Verificando dados no database
#Antes de fazer qualquer verificao no banco de dados, o cursor
precisa selecionar toda a tabela em questo. O comando acima o
responsvel pela realizao desta tarefa
Daniel Filype Silva Barreto Mrcio Srgio Soares Austregsilo
Uso
Quantidade de resultados
#Em muitos casos necessrio saber quantas linhas h no resultset
do banco de dados. Para realizar este procedimento, uma varivel
qualquer recebe nomeDoSeuCursor.rowcount (no nosso caso, a
varivel que funciona como um cursor chamasse cursor). Um
exemplo bastante simples do nmero de linhas no resultset seria em
um cadastro de contatos. Cada contato receberia, por exemplo, um
nome, um endereo e um telefone. O nmero de contatos no BD
seria equivalente ao nmero de linhas no resultset
Daniel Filype Silva Barreto Mrcio Srgio Soares Austregsilo
Uso
Ordenando o contedo do BD
#Para receber nossas informaes do banco de dados de forma
ordenada, basta mandar o nosso cursor executar o comando acima,
selecionando a tabela desejada e definindo qual ser o referencial
do cursor. Ex.: caso o campo desejado for uma string, o cursor
receber os dados ordenados em ordem alfabtica com relao ao
campo desejado
Daniel Filype Silva Barreto Mrcio Srgio Soares Austregsilo
Uso
Deletando linha do resultset do BD
#Para deletar alguma linha do resultset do banco de dados, o
comando acima necessrio. O cursor exclui da tabela toda a linha
que contenha o valor da entrada do usurio igual a um
determinado campo. Obs.: a interrogao no cdigo representa o
tipo da varivel. Ex.: sendo uma string, %s a maneira correta de
represent-la
Daniel Filype Silva Barreto Mrcio Srgio Soares Austregsilo
Uso
Recebendo resultados
#Para receber os resultados do database, criamos qualquer varivel
que recebe o nome do nosso cursor seguido de .fetchone() (que recebe
um nico resultado), .fetchall() (que recebe todos os resultados) etc.
Obs.: os resultados em questo so recebidos como tuplas
Daniel Filype Silva Barreto Mrcio Srgio Soares Austregsilo
Uso
Salvando as informaes
#Toda vez que alguma alterao for feita no banco de dados,
necessrio salv-lo para que nenhum dado seja perdido. Este
comando feito colocando o nome da nossa varivel utilizada para
fazer a conexo no banco de dados seguida de um .commit(). No
nosso caso, a varivel que realizou esta conexo foi con
Daniel Filype Silva Barreto Mrcio Srgio Soares Austregsilo
Uso
Fechando cursor
#Quando um cursor no for mais necessrio, uma boa prtica
encerr-lo. Para isto, basta colocar o nome do seu cursor seguido de
.close(). Obs.: esta funo precisa ser realizada para cada cursor do
seu programa
Daniel Filype Silva Barreto Mrcio Srgio Soares Austregsilo
Uso
Encerrando conexo com o banco de dados
#Antes de fechar o seu programa que utiliza algum banco de dados,
interessante que a conexo com o seu BD seja encerrada. Para
fazer isto, basta inserir no seu cdigo a varivel que recebeu a
conexo com o database seguida de .close(). Obs.: no nosso caso,
esta varivel con
Daniel Filype Silva Barreto Mrcio Srgio Soares Austregsilo
Python + MySQL
Servidor (banco de dados propriamente dito)
Daniel Filype Silva Barreto Mrcio Srgio Soares Austregsilo
Mdulo (elo entre a linguagem de programao e o banco de dados)
Python + MySQL
Daniel Filype Silva Barreto Mrcio Srgio Soares Austregsilo
ATENO!
Erro no mdulo do Python 2.6
As bibliotecas libguide40.dll e libmmd.dll no esto includas no pacote
Python + MySQL
As bibliotecas libguide40.dll e libmmd.dll no esto includas no pacote
Download links:
libguide40.dll
http://www.dlldll.com/libguide40.dll_download.html
libmmd.dll
http://www.dlldll.com/libmmd.dll_download.html
Daniel Filype Silva Barreto Mrcio Srgio Soares Austregsilo
ATENO!
Vejam o diretrio
onde elas devem
ser inseridas
Python + MySQL
Daniel Filype Silva Barreto Mrcio Srgio Soares Austregsilo
ATENO!
Erro no mdulo do Python 2.6
Python + MySQL
Daniel Filype Silva Barreto Mrcio Srgio Soares Austregsilo
Mensagem de erro do Python 2.6 sem as bibliotecas citadas anteriormente
ATENO!
Erro no mdulo do Python 2.6
Python + MySQL
Daniel Filype Silva Barreto Mrcio Srgio Soares Austregsilo
Warning aps a incluso das bibliotecas
#Este warning no impede o bom funcionamento do Python 2.6 em
conjunto com o MySQL
More downloads
MySQL Server 5.1
http://dev.mysql.com/downloads/mysql/5.1.html
Mdulo do Python 2.5
http://sourceforge.net/projects/mysql-python
Python + MySQL
http://sourceforge.net/projects/mysql-python
Mdulo do Python 2.6
http://www.technicalbard.com/files/MySQL-python-1.2.2.win32-py2.6.exe
Daniel Filype Silva Barreto Mrcio Srgio Soares Austregsilo
Python + MySQL
Caso haja alguma sugesto ou dvida, entrar em contato com os criadores da
apresentao:
Daniel Filype Silva Barreto Mrcio Srgio Soares Austregsilo
Daniel Filype (danielfsbarreto@gmail.com)
Mrcio Srgio (marcio_se@hotmail.com)
Python + MySQL
Daniel Filype Silva Barreto Mrcio Srgio Soares Austregsilo