Exemple #1
0
"""
run a query string, display formatted result table
example: querydb.py dbase1 "select name, job from people where pay > 50000"
"""

import sys
database, querystr = 'dbase1', 'select * from people'
if len(sys.argv) > 1: database = sys.argv[1]
if len(sys.argv) > 2: querystr = sys.argv[2]

from makedicts import makedicts
from dumpdb import showformat
from loaddb import login

conn, curs = login(database)
rows = makedicts(curs, querystr)
showformat(rows)
Exemple #2
0
"""
run a query string, display formatted result table
example: querydb.py dbase1 "select name, job from people where pay > 50000"
"""

import sys
database, querystr = 'dbase1', 'select * from people'
if len(sys.argv) > 1: database = sys.argv[1]
if len(sys.argv) > 2: querystr = sys.argv[2]

from makedicts import makedicts
from dumpdb import showformat
from loaddb import login

conn, curs = login(database)
rows = makedicts(curs, querystr)
showformat(rows)
Exemple #3
0
def consultas():
    
    from makedicts import makedicts
    from dumpdb import showformat
    from loaddb import login
    
    conn, curs = login('Universidad')

    print "\n\n1.- Obtener los nombres y notas de los estudiantes así como el resultado de su solicitud de \
manera que tengan un valor de corrección menor que 1000 y hayan solicitado la carrera de \
Informática en la Universidad Complutense de Madrid.\n"
    
    rows = makedicts(curs, "SELECT nombre_est, nota \
                            FROM estudiantes, solicitudes \
                            WHERE estudiantes.id = solicitudes.id \
                              AND estudiantes.valor < 1000 \
                              AND solicitudes.carrera = 'Informatica' \
                              AND solicitudes.nombre_univ = 'Universidad Complutense de Madrid'")
    showformat(rows)

    print "\n\nObtener  los  estudiantes  cuya  nota ponderada  cambia  en  más  de\
un  punto  respecto  a  la nota original.\n"
    
    rows = makedicts(curs, "SELECT * \
                            FROM estudiantes \
                            WHERE estudiantes.nota - (estudiantes.valor * estudiantes.nota / 1000)  > 1")
    showformat(rows)

    print '\n\nModificar la tabla solicitudes de forma que aquellos estudiantes que no solicitaron ninguna\
universidad, soliciten "Informática" en la "Universidad de Jaen".\n'

    rows = makedicts(curs, "SELECT id FROM estudiantes WHERE id NOT IN (SELECT id FROM solicitudes)")
    for row in rows:
        curs.execute('''INSERT INTO solicitudes VALUES (?, 'Universidad de Jaen', 'Informatica', 'No')''', (row["id"], ))

    rows = makedicts(curs, "SELECT * FROM solicitudes WHERE nombre_univ = 'Universidad de Jaen'")
    showformat(rows)

    print '\n\nAdmitir  en  la  "Universidad  de  Jaen"  a  todos  los  estudiantes  de  Económicas  quienes  no \
fueron admitidos en dicha carrera en otras universidades.\n'
    
    rows = makedicts(curs, "SELECT id\
                            FROM solicitudes\
                            WHERE carrera = 'Economia'\
                            AND decision = 'No'\
                            AND nombre_univ != 'Universidad de Jaen'\
                            AND id NOT IN (SELECT id\
                                           FROM solicitudes\
                                           WHERE carrera = 'Economia'\
                                           AND decision = 'Si')");
    for row in rows:
        curs.execute('''INSERT INTO solicitudes VALUES (?, 'Universidad de Jaen', 'Economia', 'Si')''', (row["id"], ))
        
    rows = makedicts(curs, "SELECT * FROM solicitudes WHERE nombre_univ = 'Universidad de Jaen' AND carrera = 'Economia'")
    showformat(rows)
    
    print "\n\nBorrar a todos los estudiantes que solicitaron más de 2 carreras diferentes.\n"
    
 
    rows = makedicts (curs, 'SELECT id,count(DISTINCT carrera) AS c FROM solicitudes GROUP BY id HAVING c>2')
    for r in rows:
        curs.execute('DELETE FROM estudiantes WHERE id = ?',(r['id'], ))

    rows = makedicts(curs, 'SELECT * FROM estudiantes')
    showformat(rows)