SQLite con el módulo sqlite3 de Python
Creación de bases de datos y tablas, INSERT/SELECT/UPDATE, consultas parametrizadas y gestión de conexiones.
SQLite con el módulo sqlite3 de Python es una lección gratuita de Learn AI with Python en CoddyKit. Esta es la lección 1 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de Learn AI with Python, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Learn AI with Python incluye 4 lecciones en total.
¿Por qué utilizar bases de datos para la IA?
Los archivos planos funcionan hasta que los datos crecen o varias partes de un proyecto necesitan los mismos registros. Una base de datos ofrece consultas rápidas, esquemas estructurados y acceso simultáneo seguro.
SQLite es una base de datos basada en archivos que no requiere configuración y que está integrada en Python mediante el módulo sqlite3; resulta perfecta para experimentos de IA y proyectos pequeños.
Conexión con sqlite3.connect
sqlite3.connect abre o crea un archivo de base de datos y devuelve una conexión. Utilice :memory: para crear una base de datos temporal en la memoria RAM.
import sqlite3
conn = sqlite3.connect("ml.db") # creates ml.db if missing
print(conn)Cursores y cursor.execute
Las sentencias SQL se ejecutan mediante un cursor obtenido de la conexión. cursor.execute(sql) envía una sentencia a la base de datos.
import sqlite3
conn = sqlite3.connect("ml.db")
cur = conn.cursor()
cur.execute("SELECT sqlite_version()")
print(cur.fetchone())CREATE TABLE IF NOT EXISTS
Defina una tabla mediante un esquema. IF NOT EXISTS permite ejecutar la sentencia de forma segura varias veces: no generará un error si la tabla ya existe.
cur.execute("""
CREATE TABLE IF NOT EXISTS experiments (
id INTEGER PRIMARY KEY AUTOINCREMENT,
name TEXT NOT NULL,
accuracy REAL,
created_at TEXT
)
""")INSERT con marcadores de posición
Nunca construya SQL mediante el formateo de cadenas: esto facilita la inyección SQL y causa problemas con las comillas. Utilice marcadores de posición ? y proporcione los valores como una tupla.
cur.execute(
"INSERT INTO experiments (name, accuracy, created_at) VALUES (?, ?, ?)",
("baseline", 0.82, "2026-05-29"),
)Inserción de muchas filas con executemany
executemany inserta una lista de tuplas en una sola llamada eficiente, mucho más rápido que repetir execute en un bucle.
rows = [
("rf", 0.88, "2026-05-29"),
("xgb", 0.91, "2026-05-29"),
]
cur.executemany(
"INSERT INTO experiments (name, accuracy, created_at) VALUES (?, ?, ?)",
rows,
)conn.commit() guarda los cambios
Las escrituras se realizan dentro de una transacción y no se conservan hasta que se llama a conn.commit(). Olvidarlo es el error más común entre principiantes: los datos desaparecen silenciosamente al cerrar la conexión.
conn.commit() # persist all pending INSERT/UPDATE/DELETEConsultas con fetchall y fetchone
Después de un SELECT, recupere los resultados:
fetchone(): la siguiente fila individualfetchall(): todas las filas restantes como una lista de tuplas- iterar directamente sobre el cursor para obtener resultados grandes
cur.execute("SELECT name, accuracy FROM experiments")
for row in cur.fetchall():
print(row) # ("baseline", 0.82) ...Filtrado y ordenación
SQL se encarga del trabajo pesado: filtre con WHERE, ordene con ORDER BY y limite con LIMIT. Utilice también marcadores de posición para los valores de las consultas.
cur.execute(
"SELECT name, accuracy FROM experiments WHERE accuracy > ? ORDER BY accuracy DESC LIMIT 3",
(0.85,),
)
print(cur.fetchall())Fábrica de filas para acceder por nombre
De forma predeterminada, las filas son tuplas. Establezca conn.row_factory = sqlite3.Row para acceder a las columnas por nombre, lo que resulta mucho más legible.
import sqlite3
conn = sqlite3.connect("ml.db")
conn.row_factory = sqlite3.Row
cur = conn.cursor()
cur.execute("SELECT * FROM experiments")
row = cur.fetchone()
print(row["name"], row["accuracy"])Gestores de contexto para mayor seguridad
Al utilizar with en la conexión, los cambios se confirman automáticamente si todo tiene éxito y se revierten si se produce un error. Combinado con closing, garantiza la limpieza de los recursos.
import sqlite3
from contextlib import closing
with closing(sqlite3.connect("ml.db")) as conn:
with conn: # auto commit/rollback
conn.execute(
"INSERT INTO experiments (name, accuracy) VALUES (?, ?)",
("svm", 0.79),
)Comprobación rápida: persistencia de las escrituras
Ejecutó varias sentencias INSERT y después cerró la conexión, pero los datos habían desaparecido la siguiente vez.
Resumen: SQLite con sqlite3
Ahora puede utilizar una base de datos real desde Python:
sqlite3.connecty uncursorCREATE TABLE IF NOT EXISTSpara crear esquemas de forma seguraINSERTcon marcadores?yexecutemanyconn.commit()para conservar las escriturasfetchone/fetchall,WHERE/ORDER BY/LIMITsqlite3.Rowy gestores de contexto para escribir código limpio y seguro
A continuación: conectar pandas y SQL.
Preguntas frecuentes
¿La lección «SQLite con el módulo sqlite3 de Python» es gratis?
Sí — el texto completo de «SQLite con el módulo sqlite3 de Python» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de Learn AI with Python, actualiza a CoddyKit PRO. El curso de Learn AI with Python incluye 4 lecciones en total.
¿Qué aprenderé en «SQLite con el módulo sqlite3 de Python»?
Creación de bases de datos y tablas, INSERT/SELECT/UPDATE, consultas parametrizadas y gestión de conexiones. Practicas Learn AI with Python con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.
¿Necesito experiencia previa para empezar Learn AI with Python?
No se requiere experiencia previa. Learn AI with Python en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 1 de 4.
¿Cuánto tiempo toma la lección «SQLite con el módulo sqlite3 de Python»?
La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.
¿Puedo escribir y ejecutar código en esta lección de Learn AI with Python?
Sí. Cada lección de Learn AI with Python incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.
Todas las lecciones de este curso
- SQLite con el módulo sqlite3 de Python
- Integración de Pandas y SQL
- Almacenamiento y consulta de resultados de machine learning
- Introducción a las bases de datos vectoriales