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.
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.
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
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")
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"))