banco de dados com python

27
Daniel Filype Silva Barreto Márcio Sérgio Soares Austregésilo

Upload: antoniocintra

Post on 27-Dec-2015

14 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Banco de Dados Com Python

Daniel Filype Silva BarretoMárcio Sérgio Soares Austregésilo

Page 2: Banco de Dados Com Python

Database

• Carência de acesso nativo

• Principais banco de dados:

•SQLite•MySQL•PostgreSQL•Interbase/Firebird• Oracle

Daniel Filype Silva Barreto Márcio Sérgio Soares Austregésilo

Page 3: Banco de Dados Com Python

Importando os drivers

Daniel Filype Silva Barreto Márcio Sérgio Soares Austregésilo

Page 4: Banco de Dados Com Python

Conexão

• MySQL

#Atribui-se uma variável qualquer à conexão com o banco de dados.

Nos exemplos utilizados nesta apresentação, a variável escolhida foi

‘con’

• SQLite

Daniel Filype Silva Barreto Márcio Sérgio Soares Austregésilo

Page 5: Banco de Dados Com Python

Conexão

•PostgreSQL

• Interbase/Firebird

Daniel Filype Silva Barreto Márcio Sérgio Soares Austregésilo

Page 6: Banco de Dados Com Python

Conexão

•MS-SQL

• Oracle

Daniel Filype Silva Barreto Márcio Sérgio Soares Austregésilo

Page 7: Banco de Dados Com Python

Uso

• Obtendo uma transação (cursor)

#Cursor é um apontador que faz o elo entre o código do Python e o

banco de dados. Para criá-lo, utiliza-se uma variável qualquer que

recebe o nome da sua conexão (no nosso caso, ‘con’) seguida de

.cursor()

Daniel Filype Silva Barreto Márcio Sérgio Soares Austregésilo

Page 8: Banco de Dados Com Python

Uso

• Criando banco de dados

#O nosso cursor executa o comando de criação do banco de dados

chamado ‘banco_de_dados’. Atenção: este comando só precisa ser

executado uma única vez, caso contrário o programa retornará um

erro constando que o database ‘banco_de_dados’ já existe.

Daniel Filype Silva Barreto Márcio Sérgio Soares Austregésilo

Page 9: Banco de Dados Com Python

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 contrário, o programa

retornará um erro.

Daniel Filype Silva Barreto Márcio Sérgio Soares Austregésilo

Page 10: Banco de Dados Com Python

Uso

• Inserindo dados no database

#O cursor executa o comando de inserir dados nos campos da nossa

tabela previamente criada. Após VALUES, colocamos os tipos de

variáveis cujo BD irá tratar. Ex.: se estivéssemos falando de três

strings, o correto seria haver %s,%s,%s dentro dos parênteses. Já

valor1, valor2 e valor3 seriam as variáveis que receberam a

entrada do usuário no prompt de comando

Daniel Filype Silva Barreto Márcio Sérgio Soares Austregésilo

Page 11: Banco de Dados Com Python

Uso

• Verificando dados no database

#Antes de fazer qualquer verificação no banco de dados, o cursor

precisa selecionar toda a tabela em questão. O comando acima é o

responsável pela realização desta tarefa

Daniel Filype Silva Barreto Márcio Sérgio Soares Austregésilo

Page 12: Banco de Dados Com Python

Uso

• Quantidade de resultados

#Em muitos casos é necessário saber quantas linhas há no resultset

do banco de dados. Para realizar este procedimento, uma variável

qualquer recebe ‘nomeDoSeuCursor’.rowcount (no nosso caso, a

variável que funciona como um cursor chamasse ‘cursor’). Um

exemplo bastante simples do número de linhas no resultset seria em

um cadastro de contatos. Cada contato receberia, por exemplo, um

nome, um endereço e um telefone. O número de contatos no BD

seria equivalente ao número de linhas no resultset

Daniel Filype Silva Barreto Márcio Sérgio Soares Austregésilo

Page 13: Banco de Dados Com Python

Uso

• Ordenando o conteúdo do BD

#Para receber nossas informações 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 alfabética com relação ao

campo desejado

Daniel Filype Silva Barreto Márcio Sérgio Soares Austregésilo

Page 14: Banco de Dados Com Python

Uso

• Deletando linha do resultset do BD

#Para deletar alguma linha do resultset do banco de dados, o

comando acima é necessário. O cursor exclui da tabela toda a linha

que contenha o valor da entrada do usuário igual a um

determinado campo. Obs.: a interrogação no código representa o

tipo da variável. Ex.: sendo uma string, ‘%s’ é a maneira correta de

representá-la

Daniel Filype Silva Barreto Márcio Sérgio Soares Austregésilo

Page 15: Banco de Dados Com Python

Uso

• Recebendo resultados

#Para receber os resultados do database, criamos qualquer variável

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 questão são recebidos como tuplas

Daniel Filype Silva Barreto Márcio Sérgio Soares Austregésilo

Page 16: Banco de Dados Com Python

Uso

• Salvando as informações

#Toda vez que alguma alteração for feita no banco de dados, é

necessário salvá-lo para que nenhum dado seja perdido. Este

comando é feito colocando o nome da nossa variável utilizada para

fazer a conexão no banco de dados seguida de um .commit(). No

nosso caso, a variável que realizou esta conexão foi ‘con’

Daniel Filype Silva Barreto Márcio Sérgio Soares Austregésilo

Page 17: Banco de Dados Com Python

Uso

• Fechando cursor

#Quando um cursor não for mais necessário, é uma boa prática

encerrá-lo. Para isto, basta colocar o nome do seu cursor seguido de

.close(). Obs.: esta função precisa ser realizada para cada cursor do

seu programa

Daniel Filype Silva Barreto Márcio Sérgio Soares Austregésilo

Page 18: Banco de Dados Com Python

Uso

• Encerrando conexão com o banco de dados

#Antes de fechar o seu programa que utiliza algum banco de dados,

é interessante que a conexão com o seu BD seja encerrada. Para

fazer isto, basta inserir no seu código a variável que recebeu a

conexão com o database seguida de .close(). Obs.: no nosso caso,

esta variável é ‘con’

Daniel Filype Silva Barreto Márcio Sérgio Soares Austregésilo

Page 19: Banco de Dados Com Python

Python + MySQL

• Servidor (banco de dados propriamente dito)

Daniel Filype Silva Barreto Márcio Sérgio Soares Austregésilo

Page 20: Banco de Dados Com Python

• Módulo (elo entre a linguagem de programação e o banco de dados)

Python + MySQL

Daniel Filype Silva Barreto Márcio Sérgio Soares Austregésilo

Page 21: Banco de Dados Com Python

• ATENÇÃO!

• Erro no módulo do Python 2.6

As bibliotecas libguide40.dll e libmmd.dll não estão incluídas no pacote

Python + MySQL

As bibliotecas libguide40.dll e libmmd.dll não estão incluídas no pacote

Download links:

• libguide40.dllhttp://www.dlldll.com/libguide40.dll_download.html

• libmmd.dllhttp://www.dlldll.com/libmmd.dll_download.html

Daniel Filype Silva Barreto Márcio Sérgio Soares Austregésilo

Page 22: Banco de Dados Com Python

• ATENÇÃO!

Vejam o diretórioonde elas devemser inseridas

Python + MySQL

Daniel Filype Silva Barreto Márcio Sérgio Soares Austregésilo

Page 23: Banco de Dados Com Python

• ATENÇÃO!

• Erro no módulo do Python 2.6

Python + MySQL

Daniel Filype Silva Barreto Márcio Sérgio Soares Austregésilo

Mensagem de erro do Python 2.6 sem as bibliotecas citadas anteriormente

Page 24: Banco de Dados Com Python

• ATENÇÃO!

• Erro no módulo do Python 2.6

Python + MySQL

Daniel Filype Silva Barreto Márcio Sérgio Soares Austregésilo

Warning após a inclusão das bibliotecas

#Este warning não impede o bom funcionamento do Python 2.6 em

conjunto com o MySQL

Page 25: Banco de Dados Com Python

• More downloads

• MySQL Server 5.1http://dev.mysql.com/downloads/mysql/5.1.html

• Módulo do Python 2.5http://sourceforge.net/projects/mysql-python

Python + MySQL

http://sourceforge.net/projects/mysql-python

• Módulo do Python 2.6http://www.technicalbard.com/files/MySQL-python-1.2.2.win32-py2.6.exe

Daniel Filype Silva Barreto Márcio Sérgio Soares Austregésilo

Page 26: Banco de Dados Com Python

Python + MySQL

Caso haja alguma sugestão ou dúvida, entrar em contato com os criadores da apresentação:

Daniel Filype Silva Barreto Márcio Sérgio Soares Austregésilo

Daniel Filype ([email protected])

Márcio Sérgio ([email protected])

Page 27: Banco de Dados Com Python

Python + MySQL

Daniel Filype Silva Barreto Márcio Sérgio Soares Austregésilo