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
- Una base de datos PostgreSQL accesible localmente.
- Una base de datos MySQL accesible localmente.
- 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
- 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. - Asegúrese de cerrar las conexiones adecuadamente después de ejecutar las consultas.
- 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.