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.