Python e database

Quando i dati da gestire sono numerosi e collegati invece dei file si preferisce usare i database. L'inteprete Python viene fornito incluso con un modulo sqlite3 che permette di accedere ai dati salvati nel formato SQLite3

http://docs.python.org/library/sqlite3.html

In alternativa si possono installare altri moduli che permettono di usare anche gli altri tipi di database:

SQLite3 ha il pregio di non richiedere nessun software DBMS Server, ma di poter accedere direttamente ai dati memorizzati come un file locale con estensione .sq3

AGGIUNGERE un'immagine che rappresenta il precedente concetto

Uno dei limiti di SQLite3 è di non avere una gestione dei permessi di accesso e degli utenti e che, una volta creata una tabella, la sua struttura non può essere modificata. I tipi di dato supportati sono: TEXT, INTEGER, REAL, BLOB and NULL

SQLite3 apre implicitamente una transazione (begin) prima di ogni INSERT/UPDATE/DELETE che viene implicitamente chiusa (commit) subito dopo (a meno che vi sia SELECT). Per avere apertura e chiusura automatica (autocommit mode), si deve impostare il parametro di connessione isolation_level a None.

db1.py
import sqlite3
 
connessione = sqlite3.connect('example.sq3')
 
# ogni cursore consente di eseguire un'operazione indipendente sullo stesso db
c = connessione.cursor() 
 
c.execute("CREATE TABLE clienti (cf text, nome text, cognome text);")
# execute consente di eseguire un'istruzione SQL 
# lancia un'eccezione se si eseguono piu' istruzioni
 
connessione.close()
db2.py
import sqlite3
 
connessione = sqlite3.connect('example.sq3')
c = connessione.cursor()
 
t = ('Rossi',) # tecnica sostituzione di parametro
c.execute('SELECT * FROM clienti WHERE cognome=?', t)
 
riga = c.fetchone()
print riga.keys()  # nomi delle colonne
print riga
 
connessione.close()
  • appunti3s/python_e_database.txt
  • Last modified: 2018/10/18 21:55
  • by profpro