Escolar Documentos
Profissional Documentos
Cultura Documentos
BancosDeDadosSql
Os quatro principais bancos de dados livres que podem ser acessados do Python são o SQLite, o MySQL, o PostgreSQL e o
Interbase/Firebird.
Nota: Não faça from driver import * porque isso fará com que o Python importe muito lixo para o namespace padrão, além
disso, isso impossibilita o uso de mais de um driver ao mesmo tempo.
Conexão
Aqui os estilos variam muito pouco, com excessão do SQLite, que acessa um arquivo local onde está o banco de dados.
Para o MySQL:
Para o SQLite:
Para o PostgreSQL:
1 con = PgSQL.connect(host='servidor',
2 database='banco de dados',
3 user='usuario',
4 password='senha')
1 con = kinterbasdb.connect(dsn='servidor:/path/arquivo.fdb',
2 user='usuario',
3 password='senha')
Para o MS-SQL
https://wiki.python.org.br/BancosDeDadosSql 1/4
24/04/2023, 18:14 BancosDeDadosSql - PythonBrasil
Esconder número das linhas
Para o Oracle
1 con = cx_Oracle.connect('usuario/senha@tnsname')
Uso
Daqui pra frente todos os métodos da API são iguais.
1 cursor = con.cursor()
Executando um sql
Esconder número das linhas
1 cursor.execute('ALGUM SQL')
É importante notar que para colocar parâmetros em sql a melhor forma é fazer de acordo com a API python, isto é, da seguinte
forma:
As variáveis valor1, valor2 e valor3 devem ser de um tipo compatível com a coluna correspondente do banco no sql. Isso porque
ao passar parâmetros para ao sql dessa forma, você estará deixando a cargo do módulo de conexão ao seu banco o tratamento
dos valores. Por exemplo, se valor1 for uma string, o módulo automaticamente colocará o valor entre aspas no lugar de ?. Se
valor2 for uma data (datetime.datetime), o módulo convertela-á para o formato do banco. Isso é útil também para evitar sql
injections.
Note também que usamos o caracter ? para representar o lugar onde um valor deve ser colocado pelo cursor.execute(). Esse
caracter depende do módulo que você utilizar para conectar ao banco de dados, e essa propriedade chama-se paramstyle.
Verifique este item na documentação do módulo ao começar a utlizá-lo.
Salvando as alterações
Depois de fazer um insert, update, ou delete, deveremos chamar o método commit() da conexão, para que as mudanças tenham
efeito no banco.
Obtendo o resultado
Esconder número das linhas
https://wiki.python.org.br/BancosDeDadosSql 2/4
24/04/2023, 18:14 BancosDeDadosSql - PythonBrasil
4 # cada linha tem um dicionário
5 # com os nomes dos campos
Embora todo paradigma possa e deva ser contestado, até mesmo para validá-lo, é consenso que a parte mais estável da aplicação
são os dados, em conseqüência as diversas empresas que utilizam o BD Oracle podem optar por plataformas livres, mas
provavelmente pensarão duas vezes antes de trocar o banco.
Na minha humilde opinião a Oracle tem uma das mais abusivas políticas de preços entre as empresas de software, mas é a líder
no setor, portanto o desenvolvedor Python tem que estar preparado para acessar este BD.
Utilizo e recomendo para isto a biblioteca cx_Oracle, um módulo que permite o acesso a este BD de acordo com a especificação
da API padrão do Python. (RômuloCampelo)
Obs: Inclui uma documentação inicial sobre o suporte ao Interbase/Firebird, e gostaria de ver mais informações sobre acesso a
outros banco de dados nesta página -- JuracyFilho
RodrigoCesarHerefeld
https://wiki.python.org.br/BancosDeDadosSql 4/4