PyMySQL: driver MySQL para Python – instalação e exemplos

Treinador Online de Python para Iniciantes

Aprenda Python facilmente sem sobrecarga teórica. Resolva tarefas práticas com verificação automática e escreva código diretamente no navegador.

Start Course

Introdução

MySQL é um dos bancos de dados relacionais mais populares, amplamente utilizado no desenvolvimento web e em soluções corporativas. Para trabalhar com MySQL em Python, o driver PyMySQL é uma excelente escolha — uma implementação pura em Python do protocolo MySQL. Ele é simples de usar, ativamente mantido e compatível com bibliotecas populares como SQLAlchemy e Pandas.

PyMySQL é um driver para MySQL que permite conectar-se ao banco de dados, executar consultas SQL, gerenciar transações e integrar-se com frameworks web sem configurações complexas. Diferente de outros drivers, o PyMySQL é escrito inteiramente em Python, o que o torna multiplataforma e fácil de instalar.

O que é PyMySQL

PyMySQL é uma biblioteca cliente para Python que implementa o protocolo MySQL Client/Server. Ela fornece uma interface para conectar-se a um servidor MySQL e executar consultas SQL. A biblioteca segue a especificação Python Database API 2.0 (PEP 249), garantindo compatibilidade com outras aplicações Python.

Principais características do PyMySQL

  • Python puro: Não requer dependências externas em C/C++
  • Compatibilidade: Suporta MySQL versões 5.5 e superiores
  • Segurança: Proteção integrada contra injeção SQL
  • Desempenho: Otimizado para execução rápida de consultas
  • Facilidade de uso: API intuitiva e direta

Instalação e conexão ao MySQL

Instalação

pip install pymysql

Para funcionalidades adicionais, também é recomendado instalar:

pip install pymysql[rsa]  # para suporte à autenticação RSA

Conexão ao banco de dados

import pymysql

connection = pymysql.connect(
    host='localhost',
    user='root',
    password='senha',
    database='test_db',
    port=3306,
    charset='utf8mb4',
    cursorclass=pymysql.cursors.DictCursor
)

DictCursor permite obter os resultados como dicionários, em vez de tuplas, tornando o trabalho com dados mais conveniente.

Parâmetros de conexão

Parâmetro Descrição Tipo Padrão
host Host do servidor MySQL str 'localhost'
port Porta do servidor int 3306
user Nome de usuário str None
password Senha str None
database Nome do banco de dados str None
charset Codificação de caracteres str 'utf8mb4'
autocommit Commit automático bool False
cursorclass Classe do cursor class Cursor

Criação de banco de dados e tabelas

# Criando banco de dados
with connection.cursor() as cursor:
    cursor.execute("CREATE DATABASE IF NOT EXISTS test_db")

# Criando tabela
with connection.cursor() as cursor:
    cursor.execute("""
        CREATE TABLE IF NOT EXISTS usuarios (
            id INT AUTO_INCREMENT PRIMARY KEY,
            nome VARCHAR(100) NOT NULL,
            email VARCHAR(100) UNIQUE,
            idade INT,
            criado_em TIMESTAMP DEFAULT CURRENT_TIMESTAMP
        )
    """)
connection.commit()

Operações CRUD com PyMySQL

Inserindo dados

# Inserindo um registro
with connection                    

Recommendations