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.
-
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
-
Importar el paquete: Importa el paquete
mysql.connector
en tu script de Python.import mysql.connector
-
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) -
Crear un cursor: Crea un objeto de cursor para ejecutar consultas SQL y realizar operaciones en la base de datos.
cursor = connection.cursor()
-
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) -
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:
-
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")
-
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)])
- Similar a
-
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()
-
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()
-
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)
- Similar a
-
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
-
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.