Utilizzando DELETE Expression

Nel capitolo precedente, abbiamo capito cosa un Updatel'espressione fa. La prossima espressione che impareremo èDelete.

L'operazione di eliminazione può essere ottenuta eseguendo il metodo delete () sull'oggetto tabella di destinazione come indicato nella seguente istruzione:

stmt = students.delete()

Nel caso della tabella degli studenti, la riga di codice precedente costruisce un'espressione SQL come segue:

'DELETE FROM students'

Tuttavia, questo eliminerà tutte le righe nella tabella degli studenti. Di solito la query DELETE è associata a un'espressione logica specificata dalla clausola WHERE. La seguente dichiarazione mostra dove parametro -

stmt = students.delete().where(students.c.id > 2)

L'espressione SQL risultante avrà un parametro associato che verrà sostituito in fase di esecuzione quando viene eseguita l'istruzione.

'DELETE FROM students WHERE students.id > :id_1'

Il seguente esempio di codice eliminerà quelle righe dalla tabella degli studenti con lastname come "Khanna" -

from sqlalchemy.sql.expression import update
from sqlalchemy import create_engine, MetaData, Table, Column, Integer, String
engine = create_engine('sqlite:///college.db', echo = True)

meta = MetaData()

students = Table(
   'students', meta, 
   Column('id', Integer, primary_key = True), 
   Column('name', String), 
   Column('lastname', String), 
)

conn = engine.connect()
stmt = students.delete().where(students.c.lastname == 'Khanna')
conn.execute(stmt)
s = students.select()
conn.execute(s).fetchall()

Per verificare il risultato, aggiorna la visualizzazione dati della tabella degli studenti in SQLiteStudio.