Código de Python - Base de datos sqlite.

Imágen de perfil

Base de datos sqlite.gráfica de visualizaciones


Python

Publicado el 16 de Diciembre del 2024 por Hilario (143 códigos)
1.127 visualizaciones desde el 16 de Diciembre del 2024
Captura-de-pantalla-de-2024-12-15-21-08-21
Captura-de-pantalla-de-2024-12-15-21-10-06

************************************************////*******************************************



Aula_28_Diciembre_15_sql.py
**********************************


Programa realizado bajo paltaforma Linux, concretamente con Ubuntu 20.04.6 LTS.
Editado con Sublime text

#Ejecución.
#Bajo consola linux.
python3 Aula_28_Diciembre_15_sql.py
Alumnos, para entender mejor este ejercicio, inicialmente vamos a instalar el programa para Linux: DB Browser for SQLite
------------------------------------------//--------------------------------
Utilizaremos este comando por consola de linux, en mi caso utilizo Ubuntu.
sudo apt install sqlitebrowser

***************************************************************************************************
Vamos a realizar un ejercicio en Python, con el fin de relacionar un programa orientado a base de datos, para ir cargandolos secuencialmente en nuestra base datos y poder ver bajo genome, con el programa DB Browser for SQLite, los resultados.
Creo que es lo más sencillo que podemos hacer, queridos alumnos, para aprender sobre este importante tema, las bases SQL.


Bien, vamos a ver un poco este ejercicio.

Explicación General del Ejercicio: Aula_28_Diciembre_15_sql.py
Clase del 18 de Diciembre - Aula 28 (Mañana)

Este ejercicio tiene como objetivo enseñar a los alumnos cómo crear, gestionar y manipular una base de datos utilizando SQLite en Python. Se presenta una agenda de contactos como ejemplo práctico, con funcionalidades para agregar, buscar, eliminar y listar contactos. El archivo generado se llama Aula_28_Agenda.db y será almacenado localmente.

Conceptos Clave:
SQLite:
Es un sistema de gestión de bases de datos ligero y sin servidor. No requiere configuración previa, lo que lo hace ideal para proyectos pequeños o educativos.

Base de datos:
Un lugar donde almacenamos datos organizados en tablas. En este caso, tenemos una tabla llamada contactos que almacena:

id: Identificador único (autoincremental).
nombre: Nombre del contacto.
telefono: Número de teléfono.
ciudad: Ciudad del contacto.

Python y SQL:
Python se conecta con SQLite usando la biblioteca sqlite3. Los comandos SQL (CREATE, INSERT, SELECT, DELETE) nos permiten manipular los datos.

Estructura del Programa:

1. Inicialización de la Base de Datos:

La función inicializar_db() crea el archivo Aula_28_Agenda.db si no existe.
Dentro de este archivo, se define la tabla contactos con sus columnas (id, nombre, telefono, ciudad).
Se utiliza SQL para asegurar que la tabla se cree solo si no existe previamente.

Código relevante:

CREATE TABLE IF NOT EXISTS contactos (
id INTEGER PRIMARY KEY AUTOINCREMENT,
nombre TEXT NOT NULL,
telefono TEXT NOT NULL,
ciudad TEXT NOT NULL
)

2. Agregar Contactos

La función agregar_contacto(nombre, telefono, ciudad) permite al usuario añadir contactos a la base de datos.
Se utiliza una consulta SQL INSERT para insertar los datos proporcionados por el usuario.

INSERT INTO contactos (nombre, telefono, ciudad) VALUES (?, ?, ?)

3. Buscar Contactos

La función buscar_contacto(nombre) permite buscar contactos en la base de datos que coincidan parcialmente con un nombre.
Utiliza SELECT con una condición LIKE para encontrar coincidencias.
SELECT nombre, telefono, ciudad FROM contactos WHERE nombre LIKE ?

4. Eliminar Contactos

La función eliminar_contacto(nombre) elimina todos los contactos cuyo nombre coincida con el criterio de búsqueda.
Utiliza DELETE para borrar los registros encontrados.

DELETE FROM contactos WHERE nombre LIKE ?

5. Mostrar Todos los Contactos

La función mostrar_agenda() lista todos los contactos almacenados en la base de datos.
Utiliza SELECT para recuperar toda la información de la tabla contactos.


SELECT nombre, telefono, ciudad FROM contactos
Interacción con el Usuario
El programa incluye un menú interactivo que guía al usuario por las diferentes funcionalidades de la agenda.
Este menú permite:

Opción 1: Agregar un contacto.
Opción 2: Buscar un contacto.
Opción 3: Eliminar un contacto.
Opción 4: Mostrar todos los contactos.
Opción 5: Salir del programa.

El menú se ejecuta dentro de un bucle while hasta que el usuario elige salir.

Ejemplo Práctico
Al ejecutar el programa, se crea el archivo Aula_28_Agenda.db.
Desde el menú:
Seleccionas 1. Agregar contacto, introduces Juan, 123456789 y Madrid.
Seleccionas 2. Buscar contacto, introduces Juan y ves los detalles de ese contacto.
Seleccionas 3. Eliminar contacto, introduces Juan y confirmas que se ha eliminado.
Seleccionas 4. Mostrar todos los contactos, y verificas que no hay contactos.

Objetivos de Aprendizaje
Comprender cómo funcionan las bases de datos relacionales.
Conectar y manipular bases de datos SQLite desde Python.
Implementar operaciones básicas de bases de datos:
Crear tablas (CREATE).
Insertar datos (INSERT).
Leer datos (SELECT).
Eliminar datos (DELETE).

Desarrollar un programa estructurado y modular.
-----------------------------------------------------------------------------------------------------
Conclusión
Este ejercicio combina teoría y práctica para ayudar a los alumnos del Aula 28 a entender el manejo de bases de datos desde Python. Los conceptos aprendidos pueden ser aplicados en proyectos más complejos en el futuro.

Requerimientos

*******************************************************************************
Programa realizado bajo paltaforma Linux, concretamente con Ubuntu 20.04.6 LTS.
Editado con Sublime text

#Ejecución.
#Bajo consola linux.
#python3 Aula_28_Diciembre_15_sql.py
Alumnos, para entender mejor este ejercicio, inicialmente vamos a instalar el programa para Linux: DB Browser for SQLite

Utilizaremos este comando por consola de linux, en mi caso utilizo Ubuntu.
sudo apt install sqlitebrowser

V-0

Publicado el 16 de Diciembre del 2024gráfica de visualizaciones de la versión: V-0
1.128 visualizaciones desde el 16 de Diciembre del 2024
estrellaestrellaestrellaestrellaestrella
estrellaestrellaestrellaestrella
estrellaestrellaestrella
estrellaestrella
estrella

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
#-------------------------------------
#Ejercicio: Aula_28_Diciembre_15_sql.py
#Ejecución.
#Bajo consola linux.
#python3 Aula_28_Diciembre_15_sql.py
#************************************
import sqlite3
 
# Función para inicializar la base de datos
def inicializar_db():
    conexion = sqlite3.connect("Aula_28_Agenda.db")
    cursor = conexion.cursor()
    # Crear la tabla de contactos si no existe
    cursor.execute("""
        CREATE TABLE IF NOT EXISTS contactos (
            id INTEGER PRIMARY KEY AUTOINCREMENT,
            nombre TEXT NOT NULL,
            telefono TEXT NOT NULL,
            ciudad TEXT NOT NULL
        )
    """)
    conexion.commit()
    conexion.close()
 
# Función para agregar un contacto
def agregar_contacto(nombre, telefono, ciudad):
    conexion = sqlite3.connect("Aula_28_Agenda.db")
    cursor = conexion.cursor()
    cursor.execute(
        "INSERT INTO contactos (nombre, telefono, ciudad) VALUES (?, ?, ?)",
        (nombre, telefono, ciudad)
    )
    conexion.commit()
    conexion.close()
    print(f"Contacto '{nombre}' agregado exitosamente.")
 
# Función para buscar un contacto por nombre
def buscar_contacto(nombre):
    conexion = sqlite3.connect("Aula_28_Agenda.db")
    cursor = conexion.cursor()
    cursor.execute(
        "SELECT nombre, telefono, ciudad FROM contactos WHERE nombre LIKE ?",
        (f"%{nombre}%",)
    )
    resultados = cursor.fetchall()
    conexion.close()
 
    if resultados:
        print("\nContactos encontrados:")
        for contacto in resultados:
            print(f"- {contacto[0]}: {contacto[1]} (Ciudad: {contacto[2]})")
    else:
        print(f"No se encontró ningún contacto con el nombre '{nombre}'.")
 
# Función para eliminar un contacto por nombre
def eliminar_contacto(nombre):
    conexion = sqlite3.connect("Aula_28_Agenda.db")
    cursor = conexion.cursor()
    cursor.execute("DELETE FROM contactos WHERE nombre LIKE ?", (f"%{nombre}%",))
    cambios = cursor.rowcount
    conexion.commit()
    conexion.close()
 
    if cambios > 0:
        print(f"Contacto(s) con el nombre '{nombre}' eliminado(s).")
    else:
        print(f"No se encontró ningún contacto con el nombre '{nombre}'.")
 
# Función para mostrar todos los contactos
def mostrar_agenda():
    conexion = sqlite3.connect("Aula_28_Agenda.db")
    cursor = conexion.cursor()
    cursor.execute("SELECT nombre, telefono, ciudad FROM contactos")
    contactos = cursor.fetchall()
    conexion.close()
 
    if contactos:
        print("\nContactos en la agenda:")
        for contacto in contactos:
            print(f"- {contacto[0]}: {contacto[1]} (Ciudad: {contacto[2]})")
    else:
        print("La agenda está vacía.")
 
# Función principal para el menú
def menu():
    inicializar_db()  # Asegurar que la base de datos esté lista antes de usarla
 
    while True:
        print("\n--- Agenda de Contactos ---")
        print("1. Agregar contacto")
        print("2. Buscar contacto")
        print("3. Eliminar contacto")
        print("4. Mostrar todos los contactos")
        print("5. Salir")
 
        opcion = input("Elige una opción: ")
 
        if opcion == "1":
            nombre = input("Nombre del contacto: ")
            telefono = input("Teléfono del contacto: ")
            ciudad = input("Ciudad del contacto: ")
            agregar_contacto(nombre, telefono, ciudad)
        elif opcion == "2":
            nombre = input("Nombre a buscar: ")
            buscar_contacto(nombre)
        elif opcion == "3":
            nombre = input("Nombre del contacto a eliminar: ")
            eliminar_contacto(nombre)
        elif opcion == "4":
            mostrar_agenda()
        elif opcion == "5":
            print("¡Hasta luego!")
            break
        else:
            print("Opción no válida, intenta de nuevo.")
 
# Ejecutar el programa
menu()



Comentarios sobre la versión: V-0 (0)


No hay comentarios
 

Comentar la versión: V-0

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad

http://lwp-l.com/s7550