IniziaInizia gratis

Inserire una singola riga

Ci sono diversi modi per eseguire un insert con SQLAlchemy; qui però ci concentriamo su quello che segue lo stesso schema dell'istruzione select.

Si usa un'istruzione insert in cui specifichi la tabella come argomento e fornisci i dati da inserire tramite il metodo .values() come argomenti con parola chiave. Ad esempio, se my_table contiene le colonne my_col_1 e my_col_2, allora insert(my_table).values(my_col_1=5, my_col_2="Example") creerà una riga in my_table con il valore di my_col_1 uguale a 5 e quello di my_col_2 uguale a "Example".

Nota la differenza di sintassi: quando aggiungi una clausola where a un'istruzione esistente, includi il nome della tabella oltre al nome della colonna, ad esempio new_stmt = old_stmt.where(my_tbl.columns.my_col == 15). Questo è necessario perché l'istruzione esistente potrebbe coinvolgere più tabelle.

D'altra parte, puoi effettuare un insert solo in una singola tabella, quindi non è necessario includere il nome della tabella quando usi values() per inserire, ad es. stmt = insert(my_table).values(my_col = 10).

Qui, il nome della tabella è data. Puoi eseguire repr(data) nella console per esaminarne la struttura.

Questo esercizio fa parte del corso

Introduzione ai database in Python

Visualizza il corso

Istruzioni dell'esercizio

  • Importa insert e select dal modulo sqlalchemy.
  • Crea un'istruzione di inserimento insert_stmt per la tabella data impostando name a 'Anna', count a 1, amount a 1000.00 e valid a True.
  • Esegui insert_stmt con connection e salva i results.
  • Stampa l'attributo .rowcount di results per vedere quanti record sono stati inseriti.
  • Crea un'istruzione select per interrogare data per il record con name uguale a 'Anna'.
  • Esegui la soluzione per stampare i risultati dell'esecuzione dell'istruzione select.

Esercizio pratico interattivo

Prova a risolvere questo esercizio completando il codice di esempio.

# Import insert and select from sqlalchemy
from sqlalchemy import ____, ____

# Build an insert statement to insert a record into the data table: insert_stmt
insert_stmt = insert(____).values(name=____, ____, ____, ____)

# Execute the insert statement via the connection: results
results = connection.execute(____)

# Print result rowcount
print(____)

# Build a select statement to validate the insert: select_stmt
select_stmt = select([data]).where(____ == ____)

# Print the result of executing the query.
print(connection.execute(select_stmt).first())
Modifica ed esegui il codice