Trabajo con bases de datos en Python
Trabajar con bases de datos es una parte fundamental del desarrollo de software. SQLite es una de las formas más sencillas y potentes de almacenar datos en un proyecto local. Esta base de datos ligera viene integrada en Python y no requiere un servidor separado para funcionar.
Fundamentos de SQLite
Definición y principio de funcionamiento
SQLite es una base de datos relacional embebida. No necesita instalación ni ejecución de un servidor independiente. Todos los datos se almacenan en un único archivo. Esto convierte a SQLite en la opción ideal para prototipos, aplicaciones de escritorio y móviles.
Principales ventajas
SQLite ofrece varias ventajas importantes:
• Integrada en Python mediante el módulo sqlite3 • No requiere configuración adicional • Proporciona un alto rendimiento para proyectos pequeños y medianos • Es muy fácil de usar • Soporta consultas SQL estándar • Tamaño reducido y requisitos mínimos del sistema
Ámbitos de aplicación de SQLite en Python
Casos de uso principales
SQLite se utiliza activamente en los siguientes escenarios:
• Proyectos educativos y de práctica • Aplicaciones y scripts locales • Aplicaciones web pequeñas, por ejemplo con Flask • Sistemas de almacenamiento de configuraciones • Programas offline con almacenamiento local de datos • Creación de prototipos de aplicaciones • Caché de datos
Ventajas para desarrolladores
Los desarrolladores de Python obtienen múltiples beneficios al usar SQLite. La base de datos no requiere dependencias adicionales. Permite empezar a trabajar con datos relacionales rápidamente. SQLite soporta transacciones y garantiza la fiabilidad de los datos.
Comenzando con SQLite
Importación y conexión
SQLite está incluido en la biblioteca estándar de Python. Para trabajar con él, solo necesitas importar el módulo correspondiente:
import sqlite3
Crear una conexión a la base de datos
Conexión a un archivo de base de datos
conn = sqlite3.connect('ejemplo.db')
Si el archivo de base de datos no existe, se creará automáticamente.
Trabajar con una base de datos en memoria
conn = sqlite3.connect(':memory:')
Esta base de datos solo existe en la memoria RAM. Se elimina al finalizar el programa.
Creación de la estructura de la base de datos
Crear tablas
cursor = conn.cursor()
cursor.execute('''
CREATE TABLE IF NOT EXISTS usuarios (
id INTEGER PRIMARY KEY AUTOINCREMENT,
nombre TEXT NOT NULL,
edad INTEGER,
email TEXT UNIQUE
)
''')
conn.commit()
Comprensión de los tipos de datos
SQLite soporta los siguientes tipos de datos principales:
• INTEGER - números enteros • TEXT - cadenas de texto • REAL - números de punto flotante • BLOB - datos binarios • NULL - valores vacíos
Operaciones con datos
Inserción de datos
Añadir un solo registro
cursor.execute("INSERT INTO usuarios (nombre, edad, email) VALUES (?, ?, ?)",
("Ana", 25, "ana@ejemplo.com"))
conn.commit()
Inserción múltiple de datos
usuarios = [
("Carlos", 30, "carlos@ejemplo.com"),
("Laura", 22, "laura@ejemplo.com"),
("Diego", 28, "diego@ejemplo.com")
]
cursor.executemany("INSERT INTO usuarios (nombre, edad, email) VALUES (?, ?, ?)", usuarios)
conn.commit()
Lectura de datos desde la base
Obtener todos los registros
cursor.execute("SELECT * FROM usuarios")
filas = cursor.fetchall()
for fila in filas:
print(fila)