SQLAlchemy Core-표현식 실행

이전 장에서 SQL 표현식을 배웠습니다. 이 장에서 우리는 이러한 표현의 실행을 살펴볼 것입니다.

결과 SQL 표현식을 실행하려면 다음을 수행해야합니다. obtain a connection object representing an actively checked out DBAPI connection resource 그리고 feed the expression object 아래 코드와 같이.

conn = engine.connect()

다음 insert () 객체는 execute () 메서드에 사용할 수 있습니다.

ins = students.insert().values(name = 'Ravi', lastname = 'Kapoor')
result = conn.execute(ins)

콘솔은 아래와 같이 SQL 표현식의 실행 결과를 보여줍니다-

INSERT INTO students (name, lastname) VALUES (?, ?)
('Ravi', 'Kapoor')
COMMIT

다음은 SQLAlchemy의 핵심 기술을 사용하여 INSERT 쿼리의 실행을 보여주는 전체 스 니펫입니다.

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

ins = students.insert()
ins = students.insert().values(name = 'Ravi', lastname = 'Kapoor')
conn = engine.connect()
result = conn.execute(ins)

결과는 아래 스크린 샷과 같이 SQLite Studio를 사용하여 데이터베이스를 열어 확인할 수 있습니다.

결과 변수는 ResultProxy 로 알려져 있습니다. object. DBAPI 커서 개체와 유사합니다. 다음을 사용하여 진술에서 생성 된 기본 키 값에 대한 정보를 얻을 수 있습니다.ResultProxy.inserted_primary_key 아래와 같이-

result.inserted_primary_key
[1]

DBAPI의 execute many () 메소드를 사용하여 많은 삽입을 발행하려면 삽입 할 고유 한 매개 변수 세트를 포함하는 사전 목록을 각각 보낼 수 있습니다.

conn.execute(students.insert(), [
   {'name':'Rajiv', 'lastname' : 'Khanna'},
   {'name':'Komal','lastname' : 'Bhandari'},
   {'name':'Abdul','lastname' : 'Sattar'},
   {'name':'Priya','lastname' : 'Rajhans'},
])

이것은 다음 그림과 같이 테이블의 데이터보기에 반영됩니다.