コード例 #1
0
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))
コード例 #2
0
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]')
コード例 #3
0
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])
コード例 #4
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)
コード例 #5
0
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]))
コード例 #6
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