IniziaInizia gratis

Selezionare dati da una tabella: SQL grezzo

Come hai visto nel video, per accedere e manipolare i dati nel database dobbiamo prima stabilire una connessione usando il metodo .connect() sull'engine. Questo perché la funzione create_engine() che hai usato prima restituisce un'istanza di engine, ma non apre davvero una connessione finché non viene eseguita un'azione che la richiede, come una query.

Usando quanto appena imparato su SQL e applicando il metodo .execute() sulla connessione, possiamo sfruttare una query SQL “grezza” per interrogare tutti i record della tabella census. L'oggetto restituito da .execute() è un ResultProxy. Su questo ResultProxy possiamo poi usare il metodo .fetchall() per ottenere i risultati, cioè il ResultSet.

In questo esercizio userai una query SQL tradizionale. Nota che quando esegui una query usando SQL grezzo, interroghi la tabella direttamente nel database. In particolare, non è necessario alcun passaggio di reflection.

Nel prossimo esercizio passerai a SQLAlchemy e inizierai a capire i suoi vantaggi. Avanti!

Questo esercizio fa parte del corso

Introduzione ai database in Python

Visualizza il corso

Istruzioni dell'esercizio

  • Usa il metodo .connect() di engine per creare una connessione.
  • Costruisci un'istruzione SQL per interrogare tutte le colonne di census e salvala in stmt. Nota che la tua istruzione SQL deve essere una stringa.
  • Usa i metodi .execute() e .fetchall() su connection e salva il risultato in results. Ricorda che .execute() viene prima di .fetchall() e che stmt deve essere passato a .execute().
  • Stampa results.

Esercizio pratico interattivo

Prova a risolvere questo esercizio completando il codice di esempio.

from sqlalchemy import create_engine
engine = create_engine('sqlite:///census.sqlite')

# Create a connection on engine
connection = ___

# Build select statement for census table: stmt
stmt = ____

# Execute the statement and fetch the results: results
results = ____

# Print results
print(____)
Modifica ed esegui il codice