Ejemplo de base de datos. Sqlite 3. Introducir y visualizar datos.

Ejemplo. Visualizar e introducir datos

Enunciado

Visualizar los datos de la base de datos Ejemplobasedatos.db. Introducir los datos de un alumno que se introducirán por tecleado: DNI, Nombre y las notas del primer y segundo parcial de los alumnos de la asignatura Informática para ingeniería. Comprobar que los datos se hayan introducido.

Ejemplo de la base datos

Importar el módulo sqlite3

Sintaxis

Importar sqlite3

import sqlite3

Visualizar los datos de la base de datos

Se debe conectar con la base de datos, conectar = sqlite3.connect('Nombre_delabase_de_datostos.db'), para comprobar que la base de datos existe.

Se debe crear el curso: cursorObj = conectar.cursor()

Se debe crear la consulta método "SELECT * FROM alumnos"

Donde:

alumnos=nombre de la tabla.

resultado = cursorObj.fetchall()

Fetchal(), devuelve los elementos de la tabla que coincidan con la condición.

Se utilizan dos ciclos, para recorrer la matriz, y se visualiza la información en el programa principal.

Cerrar la base de datos, conexion.close()

Recordar

Utilizar try/except para evitar errores en el caso de que no exista la base de datos.

Sintaxis de la función

def listarTodos(nombre_Base_Datos):    
    #Se crea la variable para que almacene los datos de la base de datos
    print(nombre_Base_Datos)
    datos=""
    try:
        # usamos try por si la base de datos no existe o si el nombre está equivocado
        conexion = sqlite3.connect(nombre_Base_Datos)
        #Se obtiene la conexión
        cursorObj = conexion.cursor()
         # escribe la sentencia SQL que lista todos los datos 
        cursorObj.execute("SELECT * FROM alumnos")
        resultado = cursorObj.fetchall()
        #Se recorre los datos de base de datos para mejorar su visualización
        for fila in resultado:                         
            for i in range(len(fila)):                 
                datos += str(fila[i])+" "           
            datos += "\n"                           
        conexion.close() 

    except:
#        #Mensaje en caso de no existir la base de datos
        datos="Error: base de datos no existente" 

    #Se devuleve los datos o si hubo error de conexión

    return datos

Introducir datos a la tabla de la base de datos

Pedirle los datos al usuario. Y almacenarlos en una lista.

Se debe conectar con la base de datos, conectar = sqlite3.connect('Nombre_delabase_de_datostos.db').

Se debe crear un cursor, método execute(INSERT INTO...)

cursorObj = conectar.cursor()

cursorObj.execute(\'INSERT INTO alumnos(dni, nombre, Primer_parcial, Segundo_parcial) VALUES(?, ?, ?, ?)\', lista)

El caracter '?\' indica las posiciones donde se van a sustituir. El segundo parámetro registro es una lista con los datos que se utilizarán en la sustitución.

Cerrar la base de datos, conexion.close()

Recordar

Utilizar try/except para evitar errores en el caso de que no exista la base de datos.

Código de la función

def insertar(nombre_Base_Datos):

    try:
        #Se abre la base de datos por si hay un error, se utiliza try
        conexion = sqlite3.connect(nombre_Base_Datos)
        print("Se creado con éxito la conexión")
        #Pedir los datos de un alumno
        dni=input("Dame la identificación del alumno")
        nombre=input("dame el nombre")
        primer_parcial=float(input("Dame la calificación del primer parcial"))
        segundo_parcial=float(input("Dame la calificación del segundo parcial"))
        #Crear la lista con los datos que se han introducido
        lista=[]
        lista.append(dni)
        lista.append(nombre)
        lista.append(primer_parcial)
        lista.append(segundo_parcial)
        # obtiene un cursor para ejecutar sentencias y se introduce el dato introducido
        cursorObj = conexion.cursor()
        # escribe la lista de datos en la base de datos
        cursorObj.execute('INSERT INTO alumnos(dni, nombre, Primer_parcial, Segundo_parcial) VALUES(?, ?, ?, ?)', lista)
        #Se consolidan los datos
        conexion.commit()
        # cerramos la conexión con la base de datos
        conexion.close() 
    except: 
        print("Error: base de datos no existente")

Código completo

import sqlite3
def insertar(nombre_Base_Datos):
    try:
        #Se abre la base de datos por si hay un error, se utiliza try
        conexion = sqlite3.connect(nombre_Base_Datos)
        print("Se creado con éxito la conexión")
        #Pedir los datos de un alumno
        dni=input("Dame la identificación del alumno")
        nombre=input("dame el nombre")
        primer_parcial=float(input("Dame la calificación del primer parcial"))
        segundo_parcial=float(input("Dame la calificación del segundo parcial"))
        #Crear la lista con los datos que se han introducido
        lista=[]
        lista.append(dni)
        lista.append(nombre)
        lista.append(primer_parcial)
        lista.append(segundo_parcial)
        # obtiene un cursor para ejecutar sentencias y se introduce el dato introducido
        cursorObj = conexion.cursor()
        # escribe la lista de datos en la base de datos
        cursorObj.execute('INSERT INTO alumnos(dni, nombre, Primer_parcial, Segundo_parcial) VALUES(?, ?, ?, ?)', lista)
        #Se consolidan los datos
        conexion.commit()
        # cerramos la conexión con la base de datos
        conexion.close() 
    except: 
        print("Error: base de datos no existente")


#Imprime todos los nombres de la base de dtos  
def listarTodos(nombre_Base_Datos):    
    #Se crea la variable para que almacene los datos de la base de datos
    print(nombre_Base_Datos)
    datos=""
    try:
        # usamos try por si la base de datos no existe o si el nombre está equivocado
        conexion = sqlite3.connect(nombre_Base_Datos)
        #Se obtiene la conexión
        cursorObj = conexion.cursor()
         # escribe la sentencia SQL que lista todos los datos 
        cursorObj.execute("SELECT * FROM alumnos")
        resultado = cursorObj.fetchall()
        #Se recorre los datos de base de datos para mejorar su visualización
        for fila in resultado:                         
            for i in range(len(fila)):                 
                datos += str(fila[i])+" "           
            datos += "\n"                           
        conexion.close() 

    except:
#        #Mensaje en caso de no existir la base de datos
        datos="Error: base de datos no existente" 

    #Se devuleve los datos o si hubo error de conexión

    return datos
#Visualizar todos los datos de la base de datos
print(listarTodos("Ejemplobasedatos.db"))
# Insertar un alumno en la base de datos
insertar("Ejemplobasedatos.db")
#Comprobar la inserción
print(listarTodos("Ejemplobasedatos.db"))

Prueba el código

Última actualización

¿Te fue útil?