示例#1
0
        maxkey = max(len(key) for key in rec)                # max key len
        for key in rec:                                      # or: \t align
            print('%-*s => %s' % (maxkey, key, rec[key]))    # -ljust, *len
        print(sept)

def dumpdb(cursor, table, format=True):
    if not format:
        cursor.execute('select * from ' + table)
        while True:
            rec = cursor.fetchone()
            if not rec: break
            print(rec)
    else:
        from makedicts import makedicts
        recs = makedicts(cursor, 'select * from ' + table)
        showformat(recs)

if __name__ == '__main__':
    import sys
    dbname, format, table = 'dbase1', False, 'people'
    cmdargs = sys.argv[1:]
    if '-' in cmdargs:                     # format if '-' in cmdline args
        format = True                      # dbname if other cmdline arg
        cmdargs.remove('-')
    if cmdargs: dbname = cmdargs.pop(0)
    if cmdargs: table  = cmdargs[0]

    from loaddb import login
    conn, curs = login(dbname)
    dumpdb(curs, table, format)
示例#2
0
"""
删除并重建数据库文件
"""

import sys
if input('Are you sure').lower() not in ('y', 'yes'):
    sys.exit()

dbname = (len(sys.argv) > 1 and sys.argv[1]) or 'dbase1'
table = (len(sys.argv) > 2 and sys.argv[2]) or 'people'

from loaddb import login

conn, curs = login(dbname)
try:
    curs.execute('drop table ' + table)
except:
    print('database table did not exist')

command = 'create table % (name char(30), job char(10), pay int(4))' % table
curs.execute(command)
conn.commit()
print('made', dbname, table)
示例#3
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)
示例#4
0
文件: querydb.py 项目: bjshan/pp4e
"""
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)
示例#5
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)
示例#6
0
文件: makedb.py 项目: liubiggun/PP4E
###############################################################################
# physically delete and recreate db files in mysql's data\ directory
# usage: makedb.py dbname? (tablename is implied)
###############################################################################

import sys
dbname = (len(sys.argv) > 1 and sys.argv[1]) or 'peopledb'

if raw_input('Are you sure?') not in ('y', 'Y', 'yes'):
    sys.exit()

from loaddb import login
conn, curs = login(db=None)
try:
    curs.execute('drop database ' + dbname)
except:
    print 'database did not exist'

curs.execute('create database ' + dbname)        # also: 'drop table tablename'
curs.execute('use ' + dbname)
curs.execute('create table people (name char(30), job char(10), pay int(4))')
conn.commit()   # this seems optional
print 'made', dbname
示例#7
0
###############################################################################
# physically delete and recreate db files in mysql's data\ directory
# usage: makedb.py dbname? (tablename is implied)
###############################################################################

import sys

dbname = (len(sys.argv) > 1 and sys.argv[1]) or 'peopledb'

if raw_input('Are you sure?') not in ('y', 'Y', 'yes'):
    sys.exit()

from loaddb import login

conn, curs = login(db=None)
try:
    curs.execute('drop database ' + dbname)
except:
    print 'database did not exist'

curs.execute('create database ' + dbname)  # also: 'drop table tablename'
curs.execute('use ' + dbname)
curs.execute('create table people (name char(30), job char(10), pay int(4))')
conn.commit()  # this seems optional
print 'made', dbname