Usando a expressão DELETE

No capítulo anterior, entendemos o que um Updateexpressão faz. A próxima expressão que vamos aprender éDelete.

A operação de exclusão pode ser alcançada executando o método delete () no objeto da tabela de destino, conforme fornecido na seguinte instrução -

stmt = students.delete()

No caso da tabela de alunos, a linha de código acima constrói uma expressão SQL da seguinte forma -

'DELETE FROM students'

No entanto, isso excluirá todas as linhas da tabela de alunos. Normalmente, a consulta DELETE está associada a uma expressão lógica especificada pela cláusula WHERE. A declaração a seguir mostra onde o parâmetro -

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

A expressão SQL resultante terá um parâmetro vinculado que será substituído no tempo de execução quando a instrução for executada.

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

O exemplo de código a seguir excluirá essas linhas da tabela de alunos com o sobrenome como '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()

Para verificar o resultado, atualize a visualização de dados da tabela de alunos no SQLiteStudio.