Sử dụng biểu thức DELETE
Trong chương trước, chúng ta đã hiểu thế nào là Updatebiểu thức không. Biểu thức tiếp theo mà chúng ta sẽ học làDelete.
Thao tác xóa có thể đạt được bằng cách chạy phương thức delete () trên đối tượng bảng đích như được đưa ra trong câu lệnh sau:
stmt = students.delete()
Trong trường hợp bảng sinh viên, dòng mã trên tạo biểu thức SQL như sau:
'DELETE FROM students'
Tuy nhiên, điều này sẽ xóa tất cả các hàng trong bảng sinh viên. Thông thường truy vấn DELETE được kết hợp với một biểu thức logic được chỉ định bởi mệnh đề WHERE. Câu lệnh sau đây cho thấy tham số where -
stmt = students.delete().where(students.c.id > 2)
Biểu thức SQL kết quả sẽ có một tham số bị ràng buộc sẽ được thay thế trong thời gian chạy khi câu lệnh được thực thi.
'DELETE FROM students WHERE students.id > :id_1'
Ví dụ mã sau sẽ xóa các hàng đó khỏi bảng sinh viên có họ là '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()
Để xác minh kết quả, hãy làm mới chế độ xem dữ liệu của bảng sinh viên trong SQLiteStudio.