Skip to main content

Conectase a una BD desde Python

Conectarse a una base de datos MariaDB desde Python es similar a conectarse a MySQL, ya que MariaDB es un fork de MySQL y comparten una interfaz de conexión común. Puedes utilizar el mismo paquete mysql-connector-python para establecer la conexión.

  1. Instalación del paquete: Si aún no lo has hecho, necesitas instalar el paquete mysql-connector-python. Puedes hacerlo utilizando pip:

    pip install mysql-connector-python
  2. Importar el paquete: Importa el paquete mysql.connector en tu script de Python.

    import mysql.connector
  3. Establecer la conexión: Proporciona los detalles de conexión, como el nombre de usuario, la contraseña, el nombre de la base de datos y la dirección del servidor MariaDB.

    # Detalles de conexión
    host = 'localhost'
    database = 'nombre_base_de_datos'
    user = 'usuario'
    password = 'contraseña'

    # Establecer conexión
    try:
    connection = mysql.connector.connect(
    host=host,
    database=database,
    user=user,
    password=password
    )
    print("Conexión exitosa a la base de datos")
    except mysql.connector.Error as err:
    print("Error al conectar a la base de datos:", err)
  4. Crear un cursor: Crea un objeto de cursor para ejecutar consultas SQL y realizar operaciones en la base de datos.

    cursor = connection.cursor()
  5. Ejecutar consultas SQL: Ahora puedes ejecutar consultas SQL utilizando el cursor, al igual que en el ejemplo anterior.

    cursor.execute("SELECT * FROM tabla")
    rows = cursor.fetchall()

    for row in rows:
    print(row)
  6. Cerrar la conexión: Asegúrate de cerrar la conexión después de completar todas las operaciones en la base de datos.

    connection.close()

Siguiendo estos pasos, puedes conectarte a una base de datos MariaDB desde Python utilizando el paquete mysql-connector-python. Asegúrate de reemplazar los valores de host, database, user y password con los correspondientes a tu configuración de base de datos MariaDB.

Objeto cursor​

El objeto cursor en Python se utiliza para ejecutar consultas SQL y manipular los resultados devueltos por la base de datos. Aquí tienes una explicación de las funciones más comunes del objeto cursor:

  1. execute(query, params=None):

    • Esta función se utiliza para ejecutar una consulta SQL en la base de datos.
    • El parámetro query es la cadena SQL que se va a ejecutar.
    • El parámetro opcional params se utiliza para pasar valores de parámetros a la consulta.
    • Ejemplo: cursor.execute("SELECT * FROM tabla")
  2. executemany(query, seq_of_params):

    • Similar a execute(), pero se utiliza para ejecutar múltiples consultas con un conjunto de parámetros.
    • El parámetro seq_of_params es una secuencia de secuencias que contiene los valores de los parámetros para cada consulta.
    • Esto es útil para operaciones de inserción o actualización masiva.
    • Ejemplo: cursor.executemany("INSERT INTO tabla (columna1, columna2) VALUES (%s, %s)", [(valor1, valor2), (valor3, valor4)])
  3. fetchone():

    • Esta función se utiliza para recuperar la siguiente fila de resultados de una consulta.
    • Devuelve una sola fila como una tupla, o None si no hay más filas disponibles.
    • Ejemplo: row = cursor.fetchone()
  4. fetchall():

    • Esta función se utiliza para recuperar todas las filas de resultados de una consulta.
    • Devuelve una lista de tuplas, donde cada tupla representa una fila de resultados.
    • Ejemplo: rows = cursor.fetchall()
  5. fetchmany(size=None):

    • Similar a fetchall(), pero se utiliza para recuperar un número específico de filas de resultados.
    • El parámetro opcional size especifica el número máximo de filas que se deben recuperar.
    • Si no se proporciona ningún tamaño, se utiliza el tamaño predeterminado del cursor.
    • Ejemplo: rows = cursor.fetchmany(size=5)
  6. rowcount:

    • Esta propiedad devuelve el número de filas afectadas por la última operación ejecutada.
    • Es útil después de operaciones de inserción, actualización o eliminación para determinar cuántas filas fueron modificadas.
    • Ejemplo: num_filas_afectadas = cursor.rowcount
  7. fetchwarnings():

    • Esta función se utiliza para recuperar las advertencias generadas por la última operación ejecutada.
    • Devuelve una lista de objetos de advertencia.
    • Útil para recuperar mensajes de advertencia del servidor de base de datos.
    • Ejemplo: warnings = cursor.fetchwarnings()

Estas son algunas de las funciones más comunes que puedes utilizar con un objeto cursor en Python para ejecutar consultas SQL y manipular los resultados de la base de datos. Cada función tiene un propósito específico y puede ser útil en diferentes situaciones durante la interacción con la base de datos.

Transacciones​

Para realizar una transacción en MariaDB desde Python, puedes seguir estos pasos utilizando el paquete mysql.connector, que también es compatible con MariaDB:

import mysql.connector

# Establecer conexión a la base de datos
connection = mysql.connector.connect(
host='localhost',
user='usuario',
password='contraseña',
database='nombre_base_de_datos'
)

try:
# Crear un objeto cursor
cursor = connection.cursor()

# Iniciar la transacción
connection.start_transaction()

# Ejecutar operaciones dentro de la transacción
cursor.execute("INSERT INTO tabla (columna1, columna2) VALUES (%s, %s)", (valor1, valor2))
cursor.execute("UPDATE tabla SET columna1 = %s WHERE columna2 = %s", (nuevo_valor1, condicion_columna2))

# Confirmar la transacción
connection.commit()
print("Transacción completada con éxito")

except mysql.connector.Error as err:
# Manejar errores y revertir la transacción en caso de error
print("Error durante la transacción:", err)
connection.rollback()
print("Transacción revertida")

finally:
# Cerrar la conexión
cursor.close()
connection.close()

En este ejemplo:

  • Se establece una conexión a la base de datos MariaDB.
  • Se crea un objeto cursor para ejecutar consultas SQL.
  • Se inicia una transacción utilizando el método start_transaction() de la conexión.
  • Se ejecutan las operaciones de base de datos dentro de la transacción utilizando el cursor.
  • Se confirma la transacción utilizando el método commit() de la conexión.
  • Se manejan los errores utilizando un bloque try-except y se revierte la transacción en caso de error.
  • Se cierra la conexión después de completar todas las operaciones.

Asegúrate de reemplazar los valores de host, user, password y database con los correspondientes a tu configuración de MariaDB, y de modificar las consultas SQL según tus necesidades específicas.