mercoledì 28 novembre 2012

Utilizzo di base di Sqlite con Python

Sqlite e' un database basato su un unico file che ha bindings in numerosi linguaggi; l'aspetto piu' interessanto dell'impiego con Python e' quello di essere inserito all'interno del linguaggio (per lo meno dalla versione 2.5 e superiori) e per questo motivo non e' necessario utilizzare librerie esterne per il suo impiego

Di seguito un esempio delle operazioni base effettuate impiegando Python...attenzione al commit finale (Sqlite ammette le transazioni atomiche)
-----------------------------------------------------------------

from sqlite3 import dbapi2 as sqlite
con = sqlite.connect('utenti.db')
cur = con.cursor()

#crea una tabella con un indice ad autoincremento
cur.execute('CREATE TABLE users (Id INTEGER PRIMARY KEY,username TEXT, password TEXT, email TEXT)')

#effettua alcuni inserimenti
# NULL serve per l'indice ad autoincremento
cur.execute('INSERT INTO users VALUES (NULL,"luca","password","lucainnoc@gmail.com")')
cur.execute('INSERT INTO users VALUES (NULL,"chiara","password","chiara@gmail.com")')
print "-----------------------"

#estrae tutte le righe
cur.execute('SELECT * FROM users')
for row in cur:
    print row
    print row[0]
    print row[1]
    print row[2]
    print "-----------------------"

#estrae solo una riga
nome = "luca"
cur.execute("SELECT * FROM users WHERE username=:username",  {"username": nome})
for row in cur:
    print row
print "-----------------------"

#cancella una riga
cur.execute("DELETE FROM users WHERE username=:username",  {"username": nome})

cur.execute('SELECT * FROM users')
for row in cur:
    print row
print "-----------------------"

#cancella la tabella
cur.execute('DROP TABLE users')
con.commit()
cur.close()