lunes, 3 de marzo de 2025

馃憠 Bases de Datos en Python con SQLite: C贸mo Almacenar y Consultar Datos

Cuando trabajamos con datos en Python, los archivos TXT, CSV o JSON pueden ser 煤tiles, pero no siempre son la mejor opci贸n. Para almacenar informaci贸n de forma estructurada y eficiente, utilizamos bases de datos.

Hoy aprender谩s:
✔️ ¿Qu茅 es SQLite y por qu茅 usarlo en Python?
✔️ Crear y conectar una base de datos SQLite
✔️ Crear, insertar y consultar datos en una tabla
✔️ Actualizar y eliminar registros
✔️ Ejemplo pr谩ctico paso a paso

馃搶 Al final del post, podr谩s manejar bases de datos en Python como un profesional.


1️⃣ ¿Qu茅 es SQLite y por qu茅 usarlo en Python?

SQLite es un gestor de bases de datos ligero, integrado en Python, que permite almacenar datos en un archivo .db sin necesidad de un servidor.

馃搶 Ventajas de SQLite:
✅ No necesita configuraci贸n extra, ya viene con Python.
✅ Almacena datos en un solo archivo .db.
✅ Soporta SQL para manejar datos de forma eficiente.
✅ Es ideal para peque帽as aplicaciones y pruebas.

Para usar SQLite en Python, solo necesitamos importar sqlite3.


2️⃣ Crear y Conectar una Base de Datos SQLite

El primer paso es crear o conectar una base de datos SQLite.

馃搶 C贸digo para conectar o crear una base de datos:

import sqlite3 conexion = sqlite3.connect("mi_base_de_datos.db") # Crea o abre el archivo de la BD cursor = conexion.cursor() # Permite ejecutar comandos SQL print("Base de datos conectada correctamente.") conexion.close() # Cierra la conexi贸n

馃搶 Explicaci贸n:
sqlite3.connect("mi_base_de_datos.db") → Crea un archivo de base de datos si no existe.
cursor = conexion.cursor() → Permite ejecutar consultas SQL.
conexion.close() → Cierra la conexi贸n cuando terminamos.


3️⃣ Crear una Tabla en SQLite

Para guardar datos en la base de datos, necesitamos crear una tabla.

馃搶 Ejemplo: Crear una tabla usuarios en la base de datos:

import sqlite3 conexion = sqlite3.connect("mi_base_de_datos.db") cursor = conexion.cursor() cursor.execute(""" CREATE TABLE IF NOT EXISTS usuarios ( id INTEGER PRIMARY KEY AUTOINCREMENT, nombre TEXT, edad INTEGER, email TEXT ) """) conexion.commit() # Guarda los cambios conexion.close() print("Tabla creada exitosamente.")

馃搶 Explicaci贸n:
CREATE TABLE IF NOT EXISTS usuarios → Crea la tabla si no existe.
id INTEGER PRIMARY KEY AUTOINCREMENT → Identificador 煤nico que se incrementa autom谩ticamente.
nombre TEXT → Almacena texto.
edad INTEGER → Almacena n煤meros enteros.
email TEXT → Almacena correos electr贸nicos.
commit() → Guarda los cambios en la base de datos.


4️⃣ Insertar Datos en una Base de Datos SQLite

Ahora que tenemos la tabla, podemos insertar registros.

馃搶 Ejemplo: Insertar un usuario en la base de datos:

conexion = sqlite3.connect("mi_base_de_datos.db") cursor = conexion.cursor() cursor.execute("INSERT INTO usuarios (nombre, edad, email) VALUES (?, ?, ?)", ("Jos茅", 25, "jose@example.com")) conexion.commit() conexion.close() print("Usuario agregado exitosamente.")

馃搶 Explicaci贸n:
INSERT INTO usuarios (...) VALUES (?, ?, ?) → Inserta datos en la tabla.
✅ Los signos ? evitan ataques SQL Injection.
conexion.commit() → Guarda los cambios.

馃搶 Para insertar m煤ltiples registros:

datos = [ ("Ana", 30, "ana@example.com"), ("Carlos", 28, "carlos@example.com"), ("Laura", 22, "laura@example.com") ] cursor.executemany("INSERT INTO usuarios (nombre, edad, email) VALUES (?, ?, ?)", datos) conexion.commit() print("Usuarios agregados.")

Ideal para insertar muchos datos al mismo tiempo.


5️⃣ Consultar Datos en SQLite

馃搶 Ejemplo: Leer y mostrar todos los usuarios de la base de datos:

conexion = sqlite3.connect("mi_base_de_datos.db") cursor = conexion.cursor() cursor.execute("SELECT * FROM usuarios") usuarios = cursor.fetchall() for usuario in usuarios: print(usuario) conexion.close()

馃搶 Salida esperada:

(1, 'Jos茅', 25, 'jose@example.com') (2, 'Ana', 30, 'ana@example.com') (3, 'Carlos', 28, 'carlos@example.com')

fetchall() recupera todos los registros.
✅ El resultado es una lista de tuplas con los datos.

馃搶 Para buscar un usuario espec铆fico:

cursor.execute("SELECT * FROM usuarios WHERE nombre = ?", ("Carlos",)) usuario = cursor.fetchone() print(usuario)

fetchone() devuelve un solo resultado.


6️⃣ Actualizar y Eliminar Datos en SQLite

馃搶 Ejemplo: Actualizar la edad de un usuario:

cursor.execute("UPDATE usuarios SET edad = ? WHERE nombre = ?", (26, "Jos茅")) conexion.commit() print("Edad actualizada.")

馃搶 Ejemplo: Eliminar un usuario:

cursor.execute("DELETE FROM usuarios WHERE nombre = ?", ("Ana",)) conexion.commit() print("Usuario eliminado.")

Siempre usa commit() despu茅s de UPDATE o DELETE.


馃殌 Conclusi贸n

SQLite permite almacenar datos de forma estructurada en Python.
Podemos crear, insertar, actualizar y eliminar registros usando SQL.
Ideal para proyectos peque帽os y medianos sin necesidad de un servidor externo.

馃搶 Pr贸ximo post: Ejercicios pr谩cticos con bases de datos SQLite en Python.

馃搨 C贸digo disponible en mi GitHub: github.com/josecodetech

馃帴 Aprende con mis videos en YouTube: https://www.youtube.com/@josecodetech

馃挰 ¿Ya has trabajado con bases de datos en Python? ¿Cu谩l ha sido tu experiencia? Com茅ntamelo.



No hay comentarios:

Publicar un comentario

Se procedera a revision para su pronta publicacion en caso de que no incumpla las normas de blogger.