PyMySQL: driver para MySQL en Python

Entrenador de Python en Línea para Principiantes

Aprende Python fácilmente sin sobrecargarte de teoría. Resuelve tareas prácticas con verificación automática, recibe pistas y escribe código directamente en el navegador, sin instalar nada.

Start Course

Introducción

MySQL es una de las bases de datos relacionales más populares, ampliamente utilizada en desarrollo web y soluciones empresariales. Para trabajar con MySQL en Python, se usa a menudo el driver PyMySQL, una implementación pura en Python del protocolo MySQL. Es fácil de usar, cuenta con soporte activo y es compatible con bibliotecas populares como SQLAlchemy y Pandas.

PyMySQL es un driver para MySQL que permite conectarse a la base de datos, ejecutar consultas SQL, gestionar transacciones e integrarse con frameworks web sin configuración compleja. A diferencia de otros drivers, PyMySQL está escrito completamente en Python, lo que lo hace multiplataforma y sencillo de instalar.

¿Qué es PyMySQL?

PyMySQL es una biblioteca cliente para Python que implementa el protocolo Cliente/Servidor de MySQL. Proporciona una interfaz para conectarse a un servidor MySQL y ejecutar consultas SQL. La biblioteca sigue la especificación Python Database API 2.0 (PEP 249), lo que garantiza compatibilidad con otras aplicaciones Python.

Características principales de PyMySQL

  • Python puro: No requiere dependencias externas en C/C++
  • Compatibilidad: Soporta MySQL versiones 5.5 y superiores
  • Seguridad: Protección integrada contra inyecciones SQL
  • Rendimiento: Optimizado para ejecución rápida de consultas
  • Facilidad de uso: API intuitiva y clara

Instalación y conexión a MySQL

Instalación

pip install pymysql

Para funcionalidad adicional, también se recomienda instalar:

pip install pymysql[rsa]  # para soporte de autenticación RSA

Conexión a la base de datos

import pymysql

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

DictCursor permite obtener resultados como diccionarios en lugar de tuplas, lo que facilita el manejo de datos.

Parámetros de conexión

Parámetro Descripción Tipo Valor por defecto
host Host del servidor MySQL str 'localhost'
port Puerto del servidor int 3306
user Nombre de usuario str None
password Contraseña str None
database Nombre de la base de datos str None
charset Codificación str 'utf8mb4'
autocommit Auto-commit bool False
cursorclass Clase del cursor class Cursor

Creación de base de datos y tablas

# Creación de base de datos
with connection.cursor() as cursor:
    cursor.execute("CREATE DATABASE IF NOT EXISTS test_db")

# Creación de tabla
with connection.cursor() as cursor:
    cursor.execute("""
        CREATE TABLE IF NOT EXISTS users (
            id INT AUTO_INCREMENT PRIMARY KEY,
            name VARCHAR(100) NOT NULL,
            email VARCHAR(100) UNIQUE,
            age INT,
            created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
        )
    """)
connection.commit()

Operaciones CRUD con PyMySQL

Inserción de datos

# Inserción de un registro
with connection                    

Recommendations