Python e MySQL

Recentemente ministrei um treinamento aqui no meu trabalho, onde falávamos da interação de Python os bancos de dados mais comuns, sendo eles MySQL, PostgreSQL, SQLServer e MongoDB.

Então resolvi fazer esse post para ficar como guia rápido de consulta de como podemos conectar o Python ao MySQL e executar algumas querys.

1 – Instale o módulo do mysql-connector.

$ python3 -m pip install mysql-connector-python --user

Feito isso vamos para o o script.

import mysql.connector
 
connection = mysql.connector.connect(host='IP_OU_HOSTNAME',
                             database='curso',
                             user='root',
                             password='alisson',
                             port=3306)

A conexão com o banco de dados é feita utilizando o módulo mysql-connector, nele temos o método connect, que recebe como argumentos, o host em que está o banco de dados, o nome do banco, o usuário e a senha.

Com a conexão feita com sucesso, na sequencia temos que criar o cursos, pois ele será o responsável por executar os comandos SQL dentro da base de dados.

cursor = connection.cursor()

Agora podemos executar uma query:

cursor.execute("select * from alisson;")
for r in cursor.fetchall():
    print(r)

Note que o cursor.execute(“”) recebeu a string SQL que foi executada, mas ele não tem um return, então para pegarmos os resultados, é necessário fazer um fetchall() que irá retornar todas as linhas resultantes da busca, caso você queira o primeiro resultado somente, pode se usar o fetchone().

Para operações de escrita, temos que usar o commit(), senão os dados ficarão em memória e não serão persistidos no banco.

cursor.execute("insert into alisson(nome,descricao) values('srv1','srv de teste')")
connection.commit()

Note que o commit(), é um método do objeto connection e não do cursor, esse commit() é uma caraterística das transactions que temos dentro do SQL, que nos permite simular as operações e só executa-las se tudo tiver ocorrido com sucesso, caso contrário, pode ser executado um rollback().

Resumidamente esse é o guia inicial para quem precisa executar alguma coisa dentro de uma base MySQL utilizando o Python.