¿Qué es un CRUD?

CRUD significa Create, Read, Update, Delete. Es el conjunto de operaciones básicas que se realizan sobre una base de datos.

Tabla de ejemplo: customers

Usaremos la tabla customers con los siguientes campos principales:

Conexión a MySQL con mysql.connector


import mysql.connector

def get_connection():
    return mysql.connector.connect(
        host="localhost",
        user="root",
        password="tu_password",
        database="mi_base"
    )
  

Esta función devuelve una conexión lista para usar en las operaciones CRUD.

CREATE - Insertar un cliente


def crear_customer(customerName, contactLastName, contactFirstName, phone, addressLine1, city, country):
    conn = get_connection()
    cursor = conn.cursor()
    sql = """INSERT INTO customers 
             (customerName, contactLastName, contactFirstName, phone, addressLine1, city, country) 
             VALUES (%s, %s, %s, %s, %s, %s, %s)"""
    values = (customerName, contactLastName, contactFirstName, phone, addressLine1, city, country)
    cursor.execute(sql, values)
    conn.commit()
    last_id = cursor.lastrowid
    cursor.close()
    conn.close()
  

READ - Consultar clientes


def obtener_customers():
    conn = get_connection()
    cursor = conn.cursor(dictionary=True)
    cursor.execute("SELECT customerNumber, customerName, phone, country FROM customers")
    rows = cursor.fetchall()
    cursor.close()
    conn.close()
    return rows
  

Devuelve una lista de diccionarios con los datos de los clientes.

UPDATE - Modificar un cliente


def actualizar_customer(customerNumber, phone, city):
    conn = get_connection()
    cursor = conn.cursor()
    sql = "UPDATE customers SET phone=%s, city=%s WHERE customerNumber=%s"
    values = (phone, city, customerNumber)
    cursor.execute(sql, values)
    conn.commit()
    cursor.close()
    conn.close()
  

DELETE - Eliminar un cliente


def eliminar_customer(customerNumber):
    conn = get_connection()
    cursor = conn.cursor()
    cursor.execute("DELETE FROM customers WHERE customerNumber = %s", (customerNumber,))
    conn.commit()
    cursor.close()
    conn.close()
  

Resumen del CRUD

Este patrón CRUD es la base de la mayoría de aplicaciones web y APIs que trabajan con bases de datos.