DELETE 표현식 사용

이전 장에서 우리는 Update표현이 그렇습니다. 다음으로 배울 표현은Delete.

삭제 작업은 다음 문과 같이 대상 테이블 객체에서 delete () 메서드를 실행하여 수행 할 수 있습니다.

stmt = students.delete()

학생 테이블의 경우 위의 코드 줄은 다음과 같이 SQL 표현식을 구성합니다.

'DELETE FROM students'

그러나 이것은 student 테이블의 모든 행을 삭제합니다. 일반적으로 DELETE 쿼리는 WHERE 절에 지정된 논리 식과 연결됩니다. 다음 문은 매개 변수-

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

결과 SQL 표현식에는 명령문이 실행될 때 런타임에 대체되는 바인딩 된 매개 변수가 있습니다.

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

다음 코드 예제는 성이 'Khanna'인 students 테이블에서 해당 행을 삭제합니다.

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()

결과를 확인하려면 SQLiteStudio에서 학생 테이블의 데이터보기를 새로 고칩니다.