Introducción: Ejecutar SQL desde Python
En la actualidad, Python es uno de los lenguajes de programación más populares para el análisis de datos y el desarrollo de aplicaciones. Una de las tareas más comunes es interactuar con bases de datos y, para ello, es fundamental saber cómo ejecutar consultas SQL desde Python. En este artículo te explicamos, paso a paso y desde cero, cómo hacerlo de forma sencilla.
Requisitos previos
- Python instalado (versión 3 o superior).
- Conocimientos básicos de SQL.
- Acceso a una base de datos (puede ser SQLite, MySQL, PostgreSQL, etc.).
- Instalación de la librería adecuada para conectarse a la base de datos.
¿Qué librerías usar para conectar Python con una base de datos?
Existen varias librerías en Python que permiten conectar y ejecutar consultas SQL en diferentes sistemas de gestión de bases de datos:
- sqlite3 para bases de datos SQLite (incluida por defecto en Python).
- mysql-connector-python o PyMySQL para MySQL.
- psycopg2 para PostgreSQL.
Instalación de librerías adicionales
Si vas a trabajar con MySQL o PostgreSQL, primero instala la librería correspondiente usando pip:
pip install mysql-connector-python pip install psycopg2
Ejecutar consultas SQL en Python con SQLite: Paso a paso
Vamos a ver cómo ejecutar consultas SQL en Python usando sqlite3, ideal para principiantes por su facilidad de uso.
1. Importar la librería
import sqlite3
2. Conectar a la base de datos
Puedes crear una nueva base de datos o conectarte a una existente:
conexion = sqlite3.connect(ejemplo.db)
3. Crear un cursor
El cursor permite ejecutar comandos SQL:
cursor = conexion.cursor()
4. Ejecutar una consulta SQL
Por ejemplo, para crear una tabla:
cursor.execute( CREATE TABLE IF NOT EXISTS usuarios ( id INTEGER PRIMARY KEY, nombre TEXT, edad INTEGER ) )
5. Insertar datos
cursor.execute("INSERT INTO usuarios (nombre, edad) VALUES (?, ?)", ("Juan", 30)) conexion.commit()
6. Consultar datos
cursor.execute("SELECT * FROM usuarios") resultados = cursor.fetchall() for fila in resultados: print(fila)
7. Cerrar la conexión
conexion.close()
¿Cómo ejecutar sentencias SQL desde Python con MySQL?
Para conectarse a MySQL y ejecutar consultas SQL desde Python, utiliza la librería mysql-connector-python:
import mysql.connector # Conexión a la base de datos conexion = mysql.connector.connect( host="localhost", user="tu_usuario", password="tu_contraseña", database="tu_base_de_datos" ) cursor = conexion.cursor() # Ejecutar una consulta cursor.execute("SELECT * FROM usuarios") # Obtener resultados resultados = cursor.fetchall() for fila in resultados: print(fila) # Cerrar la conexión cursor.close() conexion.close()
¿Cómo ejecutar queries SQL en Python con PostgreSQL?
Si trabajas con PostgreSQL, la librería recomendada es psycopg2:
import psycopg2 # Conexión a la base de datos conexion = psycopg2.connect( host="localhost", database="tu_base_de_datos", user="tu_usuario", password="tu_contraseña" ) cursor = conexion.cursor() # Ejecutar una consulta cursor.execute("SELECT * FROM usuarios") # Obtener resultados resultados = cursor.fetchall() for fila in resultados: print(fila) # Cerrar la conexión cursor.close() conexion.close()
Buenas prácticas al ejecutar consultas SQL desde Python
- Usar parámetros en las consultas para evitar inyección SQL.
- Siempre cerrar la conexión al terminar.
- Manejar excepciones para capturar posibles errores.
try: # Código para conectar y ejecutar consultas pass except Exception as e: print("Ocurrió un error:", e) finally: conexion.close()
Conclusión
Ahora ya sabes cómo ejecutar consultas SQL desde Python usando diferentes bases de datos. Este conocimiento es fundamental para cualquier desarrollador o analista de datos que necesite interactuar con bases de datos desde Python. Recuerda siempre seguir las mejores prácticas para garantizar la seguridad y eficiencia de tus aplicaciones.