Conexiones a Bases de Datos desde Python

En este ejercicio, exploraremos diferentes métodos para conectarse a bases de datos utilizando Python, con un enfoque en el uso de la biblioteca SQLAlchemy y otras herramientas relevantes. Este ejercicio es de tipo práctico y tiene una dificultad intermedia. El resultado esperado es un código funcional que permita establecer conexiones a bases de datos y ejecutar consultas básicas.

Objetivos

  • Comprender cómo establecer conexiones a diferentes sistemas de gestión de bases de datos (DBMS) utilizando Python.
  • Ejecutar consultas SQL para interactuar con bases de datos.
  • Implementar prácticas seguras y eficientes al trabajar con bases de datos.

Entrada de Datos

  1. Una base de datos PostgreSQL accesible localmente.
  2. Una base de datos MySQL accesible localmente.
  3. Un archivo de base de datos SQLite.

Código Base

A continuación, se proporciona un código base que ilustra cómo establecer conexiones a diferentes tipos de bases de datos. Complete las secciones indicadas para ejecutar consultas y manipular datos.

from sqlalchemy import create_engine
import pandas as pd

# Conexión a PostgreSQL
engine_postgresql = create_engine("postgresql://user:password@localhost:5432/mydatabase")
# TODO: Implementar consulta para obtener datos de una tabla específica

# Conexión a MySQL
engine_mysql = create_engine("mysql+pymysql://user:password@localhost:3306/mydatabase")
# TODO: Implementar consulta para obtener datos de una tabla específica

# Conexión a SQLite
engine_sqlite = create_engine("sqlite:///mydatabase.db")
# TODO: Implementar consulta para obtener datos de una tabla específica

Ejercicio

  1. Complete el código base para ejecutar una consulta SQL que seleccione todos los registros de una tabla llamada my_table en cada uno de los motores de base de datos proporcionados.
  2. Asegúrese de cerrar las conexiones adecuadamente después de ejecutar las consultas.
  3. Utilice consultas parametrizadas para evitar inyecciones SQL al realizar consultas con condiciones específicas.

Pruebas

Ejecute las siguientes pruebas para verificar que su implementación es correcta:

# Prueba para PostgreSQL
df_postgresql = pd.read_sql("SELECT * FROM my_table", con=engine_postgresql)
print(df_postgresql.head())

# Prueba para MySQL
df_mysql = pd.read_sql("SELECT * FROM my_table", con=engine_mysql)
print(df_mysql.head())

# Prueba para SQLite
df_sqlite = pd.read_sql("SELECT * FROM my_table", con=engine_sqlite)
print(df_sqlite.head())

Asegúrese de que las salidas de las pruebas muestren los primeros registros de la tabla my_table para cada base de datos.