01. Primi passi
Utenti Windows e macOS
I programmi riportati in questa pagina sono stati concepiti per il S.O. Windows.
Gli utenti macOS per poter eseguire con successo gli stessi programmi devono apportare la modifica riportata di seguito.
Sostituire l'istruzione
db_file = r"C:\SQLite\db\comuni\comuni.db"
con
from pathlib import Path
home = str(Path.home())
db_file = home + "/SQLite/db/comuni/comuni.db"
Una semplice query
Questa procedura illustra come effettuare le seguenti operazioni:
Connettersi al database (se il database non esiste è segnalato l'errore)
Effettuare la SELECT su una tabella
Eseguire il FETCH (cioè l'estrazione) di tutti i record selezionati
Esempio:
Codice sorgente
import sqlite3
from sqlite3 import Error
db_file = r"C:\sqlite\db\comuni\comuni.db"
try:
conn = sqlite3.connect("file:"+db_file+"?mode=rw", uri=True)
print("Connessione a", db_file, "avvenuta correttamente")
except Error as e:
print("Errore *****", e)
exit(1)
sql_query = """
SELECT * FROM Regioni;
"""
try:
c = conn.cursor()
c.execute(sql_query)
except Error as e:
print("Errore *****", e)
conn.close()
exit(1)
righe = c.fetchall()
for riga in righe:
print(riga)
conn.close()
Note:
Nell'istruzione di assegnazione
db_file = r"C:\sqlite\db\comuni\comuni.db"
il carattere r prima della stringa, serve ad indicare che si tratta di una row string, cioè di una stringa nella quale i caratteri speciali (come il \) devono essere trattati come caratteri ordinari.
L'elenco prodotto dal programma mostra che la query fornisce una lista di elementi ciascuno dei quali è una tupla. Per accedere all'elenco delle regioni (senza la chiave né le virgolette) occorre fare riferimento al secondo elemento della tupla.
Esempio perfezionato:
Codice sorgente
import sqlite3
from sqlite3 import Error
db_file = r"C:\sqlite\db\comuni\comuni.db"
try:
conn = sqlite3.connect("file:"+db_file+"?mode=rw", uri=True)
print("Connessione a", db_file, "avvenuta correttamente")
except Error as e:
print("Errore *****", e)
exit(1)
sql_query = """
SELECT * FROM Regioni;
"""
try:
c = conn.cursor()
c.execute(sql_query)
except Error as e:
print("Errore *****", e)
conn.close()
exit(1)
righe = c.fetchall()
for riga in righe:
print(riga[1])
conn.close()
Query su più tabelle
Questa procedura illustra come effettuare le seguenti operazioni:
Connettersi al database (se il database non esiste è segnato l'errore)
Effettuare la SELECT su più tabelle collegate in JOIN
Eseguire il FETCH di tutti i record selezionati
Esempio:
Codice sorgente
import sqlite3
from sqlite3 import Error
db_file = r"C:\sqlite\db\comuni\comuni.db"
try:
conn = sqlite3.connect("file:"+db_file+"?mode=rw", uri=True)
print("Connessione a", db_file, "avvenuta correttamente")
except Error as e:
print("Errore *****", e)
exit(1)
sql_query = """
SELECT Regioni.Denominazione, Province.Denominazione,
Sigla
FROM Province, Regioni
WHERE Province.regioneID = Regioni.RegioneID;
"""
try:
c = conn.cursor()
c.execute(sql_query)
except Error as e:
print("Errore *****", e)
conn.close()
exit(1)
righe = c.fetchall()
for riga in righe:
print(riga[0], riga[1], riga[2])
conn.close()
Sito: 7ecnologie
Sezione: 09. Python
Capitolo: 02. Introduzione a Python
Paragrafo: 01. Primi passi
Indice dei capitoli: 00. Risorse - 01. Ambiente di sviluppo - 02. Introduzione a Python - 03. Accesso al DB - 04. La libreria tkinter - 05. Tutorial - 98. Esercizi
Indice dei paragrafi: 01. Primi passi - 02. Query parametrizzate - 03. Query "voluminose" - 04. Inserimento di record