def modify(id, name): print('Modificando la tabla') # Utilizar la sentencia UPDATE para modificar aquella fila (estudiante) # cuyo id sea el "id" pasado como parámetro, # modificar el tutor asignado (fk_tutor_id --> id) por aquel que coincida # con el nombre del tutor pasado como parámetro consulta.unique(""" UPDATE estudiante SET fk_tutor_id = (SELECT t.id FROM tutor as t WHERE t.name = '{}') WHERE id = {};""".format(name, id))
def search_by_tutor(tutor): print('Operación búsqueda!') # Esta función recibe como parámetro el nombre de un posible tutor. # Utilizar la sentencia SELECT para imprimir en pantalla # aquellos estudiantes que tengan asignado dicho tutor. # De la lista de esos estudiantes el SELECT solo debe traer # las siguientes columnas por fila encontrada: # id / name / age / tutor_nombre consulta.unique( """ SELECT e.id, e.name, e.age, t.name FROM estudiante AS e INNER JOIN tutor AS t ON e.fk_tutor_id = t.id WHERE t.name = '{}';""".format(tutor), '[print(row) for row in query]')
def count_grade(grade): print('Estudiante por grado') # Utilizar la sentencia COUNT para contar cuantos estudiante # se encuentran cursando el grado "grade" pasado como parámetro # Imprimir en pantalla el resultado resultado = consulta.unique( """SELECT COUNT(e.grade) FROM estudiante AS e WHERE e.grade = {}""".format(grade), '[row for row in query]') print(resultado[0][0])
def fetch(): print('Comprovemos su contenido, ¿qué hay en la tabla?') # Utilizar la sentencia SELECT para imprimir en pantalla # todas las filas con todas sus columnas de la tabla estudiante. # No debe imprimir el id del tutor, debe reemplazar el id por el nombre # del tutor en la query, utilizando el concepto de INNER JOIN, # se puede usar el WHERE en vez del INNER JOIN. # Utilizar fetchone para imprimir de una fila a la vez consulta.unique(""" SELECT e.id, e.name, e.age, t.name FROM estudiante AS e INNER JOIN tutor AS t ON e.fk_tutor_id = t.id;""", """ while True: row = c.fetchone() if row is None: break print(row)""", script=True)
def search_author(book_title): """ Retorna en pantalla el autor de hacer una query a la tabla `libro` del archivo `libreria.db`\n @param book_title: `str` nombre del libro del que sera buscado su autor:\n """ autor = consulta.unique( """ SELECT a.author FROM libro AS l INNER JOIN autor AS a ON l.fk_author_id = a.id WHERE l.title = '{}'""".format(book_title), '[row[0] for row in query]') print('LIBRO: {} | AUTOR: {}'.format(book_title, autor[0]))
from mySqlModule import consulta #Declaraciones de Path script_path = os.path.dirname(os.path.realpath(__file__)) config_path_name = os.path.join(script_path, 'config.ini') db = config('db', config_path_name) dataset = config('dataset', config_path_name) schema_path_name = os.path.join(script_path, db['schema3']) #Declaracion del directorio y archivo de trabajo consulta.directory = script_path = os.path.dirname(os.path.realpath(__file__)) consulta.file = db['database_ejercicio'] #Declaracion de PRAGMAS consulta.unique("""PRAGMA foreign_keys = 1""") def create_schema(): consulta.script(schema_path_name) def fill(): """ Rellena el archivo `libreria.db` con los datos de los archivos `libreria_autor.csv` y `libreria_libro.csv` """ def fetch_data(file, format): """ Recorre un archivo csv y recolecta datos\n Return: Devuelve una lista con tuplas