Verwenden des DELETE-Ausdrucks

Im vorigen Kapitel haben wir verstanden, was ein UpdateAusdruck tut. Der nächste Ausdruck, den wir lernen werden, istDelete.

Der Löschvorgang kann durch Ausführen der Methode delete () für das Zieltabellenobjekt ausgeführt werden, wie in der folgenden Anweisung angegeben:

stmt = students.delete()

Im Fall einer Schülertabelle erstellt die obige Codezeile einen SQL-Ausdruck wie folgt:

'DELETE FROM students'

Dadurch werden jedoch alle Zeilen in der Schülertabelle gelöscht. Normalerweise ist die DELETE-Abfrage einem logischen Ausdruck zugeordnet, der durch die WHERE-Klausel angegeben wird. Die folgende Anweisung zeigt, wo Parameter -

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

Der resultierende SQL-Ausdruck hat einen gebundenen Parameter, der zur Laufzeit ersetzt wird, wenn die Anweisung ausgeführt wird.

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

Das folgende Codebeispiel löscht diese Zeilen aus der Schülertabelle mit dem Nachnamen '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()

Aktualisieren Sie die Datenansicht der Schülertabelle in SQLiteStudio, um das Ergebnis zu überprüfen.