Banco de dados Python SQL 2

Conectar Banco de Dados MySQL com Python

conectar_mysql_python

Fala galera do mundo dos dados! Você já precisou manipular dados de um banco relacional com python? Essa é uma prática bem comum em empresas que atuam com as mais diversas fontes de dados. Então, o Dados ao Cubo mostra na prática como conectar um banco de dados MySQL com Python. Em um artigo anterior, mostramos como fazer essa comunicação com banco PostgreSQL, se não viu ainda, confere o artigo Manipulando Dados em PostgreSQL com Python.

Nos próximos tópicos, você verá o que é preciso de instalação e configuração. Como conectar o banco de dados MySQL com python. Além de fazer as principais funções com a linguagem SQL (criar, inserir, deletar e consultar). Sem mais enrolação, partiu configurações do banco de dados MySQL.

Configurar Banco de Dados MySQL

Primeiramente algumas configurações básicas de instalação das ferramentas que serão utilizadas para conectar um banco de dados MySQL com Python.

Instalar Banco de Dados MySQL

Começamos com a instalação no banco MySQL, um dos bancos relacionais mais utilizados no mundo segundo o DB Engines. Utilizaremos a versão MySQL Community, que é gratuita para a comunidade.

Após a instalação, já podemos conectar com o SGBD utilizando a ferramenta de administração do próprio MySQL, o MySQL Workbench. Aqui utilizaremos o DBeaver, ferramenta que já mostrei em outros artigos aqui no Dados ao Cubo.

Na imagem abaixo as informações para conexão com o banco de dados MySQL. Essa conexão não é obrigatória para conectar o MySQL com Python.

Após o banco instalado, seguimos para o conector do MySQL para Python.

Instalar Conector MySQL para Python

Para instalar o conector MySQL para Python, podemos fazer de duas formas.

  1. Baixando o arquivo e instalando.
  2. Instalando através do pip (gerenciador de pacotes do Python), executando o comando: pip install mysql-connector-python.

Assim quem finalizada a instalação do conector, partiu Python!!!

MySQL com Python ao Cubo

Antes de mais nada, é preciso fazer o import da biblioteca necessária para comunicação do Python com MySQL.

from mysql.connector import connect

Sendo assim, utilizaremos a função connect, da biblioteca mysql. Então, agora já podemos utilizar a função importada no nosso código Python.

Conectar MySQL com Python

Chegou a hora de criar a conexão do Python com o MySQL! Portanto, criaremos uma função de nome mysql_connection, com os parâmetros necessários para conexão.

def mysql_connection(host, user, passwd, database=None):
    connection = connect(
        host = host,
        user = user,
        passwd = passwd,
        database = database
    )
    return connection

A função connect precisa de alguns parâmetros. Então temos o host que é o endereço do banco de dados. Além disso o user, que é usuário com acesso ao banco. Juntamente com o passwd, que é a senha do usuário com acesso ao banco. E finalmente a database, que é o nome da base de dados no banco.

Em seguida, fazendo na chamada da função mysql_connection, criada anteriormente, passando os parâmetros necessários.

connection = mysql_connection('localhost', 'root', 'mysql123')

Como resultado, temos a variável connection, que vai permitir a comunicação do Python com o MySQL.

Estrutura de Dados MySQL com Python

Agora criaremos a estrutura de dados no MySQL com Python. O primeiro passo será criar uma nova base de dados, em seguida criaremos a nossa tabela no banco de dados. Na sequência os detalhes do código Python. 

O primeiro passo, será a criação da base de dados. Assim, a variável query, vai receber um comando SQL (CREATE DATABASE, para criação da base de dados). Em seguida criamos uma variável chamada cursor, que vai estabelecer a conexão através da variável connection. Finalizamos com a variável cursor executando o comando SQL da variável query.

query = '''
    CREATE DATABASE dadosaocubo
'''
cursor = connection.cursor()
cursor.execute(query)

Após a criação da base de dados, vamos encerrar a conexão com código Python abaixo. A função close encerra a comunicação Python MySQL.

connection.close()

A conexão foi encerrada, para estabelecer uma nova conexão com a base de dados criada anteriormente. Novamente, fazendo na chamada da função mysql_connection, passando os parâmetros necessários.

connection = mysql_connection('localhost', 'root', 'mysql123', 'dadosaocubo')

O passo seguinte, será a criação da tabela na base de dados dadosaocubo. Dessa forma, a variável query, vai receber um comando SQL (CREATE TABLE, para criação da tabela). Em seguida criamos uma variável chamada cursor, que vai estabelecer a conexão através da variável connection. Finalizamos com a variável cursor executando o comando SQL da variável query.

query = '''
    CREATE TABLE clientes (
        id       INT PRIMARY KEY, 
        nome     VARCHAR(100),
        telefone VARCHAR(15),
        email    VARCHAR(100),
        cidade   VARCHAR(50)
    )
'''
cursor = connection.cursor()
cursor.execute(query)

Com a nossa estrutura de dados pronta no MySQL, podemos executar as principais funções para inserir, deletar, atualizar e consultar dados no MySQL.

Inserir Dados no MySQL com Python

Para inserir os dados na tabela. Temos novamente a variável query, com um comando SQL (INSERT INTO, para inserir dados). Então, a variável chamada cursor, que vai estabelecer a conexão através da variável connection. Com a variável cursor executando o comando SQL da variável query. Finalizando com a função commit, que efetiva a transação no banco de dados.

query = '''
    INSERT INTO clientes VALUES
        (1001, 'Joãozinho Silva', '7199999-9999', 'joao@email.com', 'Salvador'),
        (1002, 'Paula Silva', '2199999-9999', 'paula@email.com', 'Rio'),
        (1003, 'Patricia Silva', '1199999-9999', 'paty@email.com', 'Sampa'),
        (1004, 'Zé Silva', '4199999-9999', 'ze@email.com', 'Curitiba'),
        (1005, 'Richarlison Pombo', '3199999-9999', 'pombo@email.com', 'Nova Venécia'),
        (1006, 'Vini Junior', '2199999-9999', 'vini@email.com', 'Rio'),
        (1007, 'Neymar Junior', '1199999-9999', 'ney@email.com', 'Santos')
'''
cursor = connection.cursor()
cursor.execute(query)
connection.commit()

Agora veremos como atualizar algum registro que foi inserido na tabela. Também utilizando a conexão Python MySQL!

Atualizar Dados no MySQL com Python

Quando precisar atualizar os dados no MySQL com Python, faremos da seguinte forma. Criamos uma variável query, com um comando SQL (UPDATE, para atualizar dados). Em seguida uma variável cursor, para estabelecer a conexão através de uma variável connection. Com a variável cursor executando o comando SQL da variável query. E para efetivar a transação no banco de dados utilizamos a função commit.

query = '''
    UPDATE clientes SET cidade = 'Madri' WHERE id = 1006
'''
cursor = connection.cursor()
cursor.execute(query)
connection.commit()

Podemos também deletar um registro da tabela criada. Ainda utilizando a conexão Python MySQL!

Deletar Dados no MySQL com Python

Quando o assunto é deletar os dados no banco com Python, é bem semelhante. Temos novamente a variável query, com um comando SQL (DELETE FROM, para deletar dados). A variável chamada cursor, para estabelecer a conexão com a variável connection. Seguimos com o cursor executando o comando SQL da variável query. Encerrando com a função commit, que efetiva a transação.

query = '''
    DELETE FROM clientes WHERE id = 1007
'''
cursor = connection.cursor()
cursor.execute(query)
connection.commit()

Chegou a hora de fazer uma consulta no banco de dados. Mais uma vez utilizando a conexão Python MySQL!

Consultar Dados no MySQL com Python

Para consultar os dados no MySQL com Python. Mais uma vez a variável query, com um comando SQL (SELECT para consultar dados). Também a variável cursor, para estabelecer a conexão com a variável connection. Seguimos com o cursor executando o comando SQL da variável query. Os dados serão armazenados na variável result através da função fetchall. Finalizando com a exibição dos dados em um loop for para percorrer cada registro e exibir na tela.

query = '''
    SELECT * FROM clientes
'''
cursor = connection.cursor()
cursor.execute(query)
result = cursor.fetchall()
for row in result:
  print(row)

Confere na imagem abaixo, os dados consultados no banco com Python.

Caso seja necessário saber o nome das colunas, a variável cursor possui a função de description, onde é possível retornar o nome de cada coluna da tabela. Conforme código Python abaixo.

columns = tuple([i[0] for i in cursor.description])
print(columns)

Na imagem abaixo o resultado do código Python, com o nome das colunas.

Essa possibilidade de trabalhar com bano de dados relacional através da linguagem Python é demais em!!!

MySQL com Python ao Cubo

E então, chegamos ao final de como conectar um banco de dados MySQL com Python. Além de conectar, vimos como fazer algumas das principais operações SQL. Se curtiu, não deixe de conferir o próximo de como manipular dados no MySQL com Pandas. Não esqueça de compartilhar o conteúdo e deixar aquele feedback para nós. Tamo juntos e até a próxima.

Conteúdos ao Cubo

Se você curtiu o conteúdo, lá no Dados ao Cubo tem muito mais. Então, deixo algumas sugestões de conteúdos que você pode encontrar por lá, sempre falando sobre o mundo dos dados.

Finalizo com um convite para você ser Parceiro de Publicação Dados ao Cubo, escrever o próximo artigo e ter divulgação para toda a comunidade de dados no LinkedIn.

Gostou? Compartilhe!

2 Comments

  • Reply
    Paulo Roberto
    27 de setembro de 2023

    Ótimo conteúdo!

  • Reply
    JOAO BOSCO PEREIRA DIAS PEREIRA
    22 de novembro de 2023

    Finalmente encontrei alguém com uma excelente didática para ensinar banco de dados. Parabéns e obrigado por disponibilizar esse conteudo na rede.

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *