Untitled

mail@pastecode.io avatar
unknown
plain_text
6 months ago
2.6 kB
2
Indexable
Never
import sqlite3

# Conectar a la base de datos (se creará si no existe)
conn = sqlite3.connect('biblioteca.db')
cursor = conn.cursor()

# Crear la tabla de libros
cursor.execute('''
    CREATE TABLE IF NOT EXISTS libros (
        id INTEGER PRIMARY KEY AUTOINCREMENT,
        titulo TEXT NOT NULL,
        autor TEXT NOT NULL,
        ejemplares_disponibles INTEGER NOT NULL,
        otros_detalles TEXT
    )
''')
conn.commit()

# Operación de Alta
def agregar_libro(titulo, autor, ejemplares_disponibles, otros_detalles=None):
    cursor.execute('''
        INSERT INTO libros (titulo, autor, ejemplares_disponibles, otros_detalles)
        VALUES (?, ?, ?, ?)
    ''', (titulo, autor, ejemplares_disponibles, otros_detalles))
    conn.commit()

# Operación de Baja
def eliminar_libro(libro_id):
    cursor.execute('DELETE FROM libros WHERE id = ?', (libro_id,))
    conn.commit()

# Operación de Modificación
def actualizar_libro(libro_id, ejemplares_disponibles, otros_detalles=None):
    cursor.execute('''
        UPDATE libros
        SET ejemplares_disponibles = ?, otros_detalles = ?
        WHERE id = ?
    ''', (ejemplares_disponibles, otros_detalles, libro_id))
    conn.commit()

# Operación de Consulta
def buscar_libros(criterio):
    cursor.execute('''
        SELECT * FROM libros
        WHERE titulo LIKE ? OR autor LIKE ? OR otros_detalles LIKE ?
    ''', (f'%{criterio}%', f'%{criterio}%', f'%{criterio}%'))
    return cursor.fetchall()

# Operación de Listado
def listar_libros():
    cursor.execute('SELECT * FROM libros')
    return cursor.fetchall()

# Ejemplos de uso
agregar_libro('El Señor de los Anillos', 'J.R.R. Tolkien', 10, 'Fantasía épica')
agregar_libro('1984', 'George Orwell', 5, 'Distopía')
agregar_libro('Cien años de soledad', 'Gabriel García Márquez', 8, 'Realismo mágico')

# Mostrar lista de libros antes de la actualización
print("Lista de libros antes de la actualización:")
print(listar_libros())

# Actualizar cantidad de ejemplares disponibles del primer libro
actualizar_libro(1, 15)

# Mostrar lista de libros después de la actualización
print("\nLista de libros después de la actualización:")
print(listar_libros())

# Buscar libros por criterio
resultados_busqueda = buscar_libros('Tolkien')
print("\nResultados de la búsqueda:")
print(resultados_busqueda)

# Eliminar un libro
eliminar_libro(2)

# Mostrar lista de libros después de la eliminación
print("\nLista de libros después de la eliminación:")
print(listar_libros())

# Cerrar la conexión a la base de datos
conn.close()
Leave a Comment