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