Python e MySQL: Conectando e Gerenciando Dados
Introdução
A integração entre Python e MySQL é uma das formas mais populares de trabalhar com banco de dados relacional usando programação. Python oferece bibliotecas robustas para manipulação de MySQL, permitindo realizar desde consultas simples até operações avançadas, como transações e otimizações.
Neste artigo, vamos aprender a configurar o ambiente, realizar a conexão e executar operações básicas no banco de dados MySQL utilizando Python. Além disso, vamos gerar uma tabela com dados aleatórios, realizar a leitura dessa tabela e exportá-la para um arquivo HTML.
1. Preparando o Ambiente
Antes de começarmos a codificar, precisamos garantir que tudo esteja devidamente configurado. Para isso, siga os seguintes passos:
1.1 Instalando o MySQL
Instale o MySQL no seu sistema operacional. Se você está usando o Ubuntu, por exemplo, os seguintes comandos podem ajudar:
sudo apt update
sudo apt install mysql-server
sudo systemctl start mysql
sudo systemctl enable mysql
Para verificar se o MySQL está rodando, use:
sudo systemctl status mysql
1.2 Instalando o conector MySQL para Python
Python possui um conector oficial chamado mysql-connector-python, que facilita a conexão com o MySQL. Você pode instalá-lo via pip:
pip install mysql-connector-python
1.3 Configurando o Banco de Dados
Após instalar o MySQL, vamos criar um banco de dados simples para testar nossas operações com Python:
CREATE DATABASE exemplo_python;
USE exemplo_python;
CREATE TABLE usuarios (
id INT AUTO_INCREMENT PRIMARY KEY,
nome VARCHAR(255),
email VARCHAR(255)
);
2. Conectando Python ao MySQL
Agora que temos o MySQL rodando e um banco de dados configurado, vamos conectar o Python ao MySQL. Isso é feito através do mysql.connector.
2.1 Exemplo de Conexão
Aqui está um exemplo simples de como conectar Python ao MySQL:
import mysql.connector
# Conectando ao banco de dados
conexao = mysql.connector.connect(
host="localhost",
user="root", # Altere para o seu usuário MySQL
password="sua_senha", # Altere para sua senha MySQL
database="exemplo_python"
)
# Verificando se a conexão foi estabelecida com sucesso
if conexao.is_connected():
print("Conectado ao MySQL com sucesso!")
3. Operações CRUD em Python e MySQL
CRUD significa Create, Read, Update e Delete, e refere-se às quatro operações principais de interação com um banco de dados.
3.1 CREATE: Inserindo Dados no Banco
Vamos começar inserindo novos registros na tabela usuarios.
cursor = conexao.cursor()
sql = "INSERT INTO usuarios (nome, email) VALUES (%s, %s)"
valores = ("João Silva", "joao@email.com")
cursor.execute(sql, valores)
conexao.commit() # Confirma a transação
print(cursor.rowcount, "registro inserido com sucesso.")
3.2 READ: Lendo Dados do Banco
Agora, vamos buscar os dados armazenados na tabela usuarios.
sql = "SELECT * FROM usuarios"
cursor.execute(sql)
resultados = cursor.fetchall()
for linha in resultados:
print(linha)
3.3 UPDATE: Atualizando Dados
Aqui está um exemplo de como atualizar os dados de um usuário.
sql = "UPDATE usuarios SET email = %s WHERE nome = %s"
valores = ("joao_silva@novoemail.com", "João Silva")
cursor.execute(sql, valores)
conexao.commit()
print(cursor.rowcount, "registro(s) atualizado(s).")
3.4 DELETE: Excluindo Dados
Finalmente, para deletar um registro do banco de dados:
sql = "DELETE FROM usuarios WHERE nome = %s"
valores = ("João Silva",)
cursor.execute(sql, valores)
conexao.commit()
print(cursor.rowcount, "registro(s) deletado(s).")
4. Criando uma Tabela com Valores Aleatórios
Agora, vamos criar uma tabela com 10 colunas e inserir dados aleatórios para simular um cenário mais complexo. Usaremos a biblioteca random do Python para gerar os valores aleatórios e preencher as colunas.
4.1 Criando a Tabela
Primeiro, criamos uma nova tabela com 10 colunas para armazenar dados de exemplo:
CREATE TABLE exemplo_aleatorio (
id INT AUTO_INCREMENT PRIMARY KEY,
nome VARCHAR(255),
idade INT,
salario FLOAT,
cidade VARCHAR(255),
email VARCHAR(255),
telefone VARCHAR(20),
departamento VARCHAR(255),
data_admissao DATE,
status VARCHAR(50),
supervisor VARCHAR(255)
);
4.2 Inserindo Dados Aleatórios
Agora vamos gerar e inserir valores aleatórios na tabela usando Python:
import random
from datetime import datetime
nomes = ["João", "Maria", "Pedro", "Ana", "Carlos", "Julia", "Lucas", "Fernanda", "Paulo", "Sofia"]
cidades = ["São Paulo", "Rio de Janeiro", "Belo Horizonte", "Curitiba", "Fortaleza"]
departamentos = ["Vendas", "RH", "TI", "Financeiro", "Marketing"]
status_opcoes = ["Ativo", "Inativo", "Licença", "Contratado"]
cursor = conexao.cursor()
# Inserindo 10 registros com valores aleatórios
for _ in range(10):
nome = random.choice(nomes)
idade = random.randint(20, 60)
salario = round(random.uniform(3000.00, 10000.00), 2)
cidade = random.choice(cidades)
email = f"{nome.lower()}@exemplo.com"
telefone = f"({random.randint(10, 99)}) {random.randint(90000, 99999)}-{random.randint(1000, 9999)}"
departamento = random.choice(departamentos)
data_admissao = datetime.now().date()
status = random.choice(status_opcoes)
supervisor = random.choice(nomes)
sql = "INSERT INTO exemplo_aleatorio (nome, idade, salario, cidade, email, telefone, departamento, data_admissao, status, supervisor) VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s)"
valores = (nome, idade, salario, cidade, email, telefone, departamento, data_admissao, status, supervisor)
cursor.execute(sql, valores)
conexao.commit()
print("Dados aleatórios inseridos com sucesso.")
5. Leitura dos Dados e Exportação para HTML
Agora que temos nossa tabela preenchida com dados aleatórios, vamos ler os dados e exportá-los para um arquivo HTML utilizando o Pandas.
5.1 Instalando a Biblioteca Pandas
Instale a biblioteca Pandas, se ainda não a tiver instalada:
pip install pandas
5.2 Lendo os Dados da Tabela
Usamos o Pandas para ler os dados da tabela exemplo_aleatorio:
import pandas as pd
# Lendo os dados da tabela exemplo_aleatorio
sql = "SELECT * FROM exemplo_aleatorio"
df = pd.read_sql(sql, conexao)
print(df.head()) # Exibindo as 5 primeiras linhas
5.3 Exportando os Dados para HTML
Agora, vamos exportar o DataFrame resultante para um arquivo HTML:
# Exportando para HTML
df.to_html("tabela_exemplo.html", index=False)
print("Tabela exportada para HTML com sucesso.")
6. Tratamento de Erros e Boas Práticas
6.1 Lidando com Exceções
É importante adicionar um tratamento de erros ao conectar-se ao banco de dados e ao realizar operações:
try:
conexao = mysql.connector.connect(
host="localhost",
user="root",
password="sua_senha",
database="exemplo_python"
)
if conexao.is_connected():
print("Conexão estabelecida.")
except mysql.connector.Error as erro:
print(f"Erro ao conectar ao MySQL: {erro}")
finally:
if conexao.is_connected():
conexao.close()
print("Conexão encerrada.")
6.2 Fechando Conexões
Sempre lembre-se de fechar a conexão e o cursor após concluir as operações para evitar vazamento de memória e bloqueios desnecessários:
cursor.close()
conexao.close()
7. Conclusão
Integrar Python com MySQL é uma forma eficiente de gerenciar e manipular dados em projetos que exigem persistência de informações. Com as operações básicas de CRUD, a geração de dados aleatórios e a exportação de tabelas para HTML, você pode construir aplicações robustas, desde simples sistemas de gerenciamento de dados até projetos

Leave a comment