시작하기무료로 시작하기

단일 행 삽입하기

SQLAlchemy로 INSERT를 수행하는 방법은 여러 가지가 있지만, 여기서는 select 구문과 동일한 패턴을 따르는 방법에 집중하겠습니다.

이 방법은 테이블을 인자로 지정한 insert 구문을 사용하고, 삽입할 데이터를 .values() 메서드의 키워드 인자로 넘깁니다. 예를 들어 my_tablemy_col_1my_col_2 열이 있다면, insert(my_table).values(my_col_1=5, my_col_2="Example")my_tablemy_col_1은 5, my_col_2"Example"인 행을 생성합니다.

구문 차이에 주의하세요. 기존 구문에 where 절을 이어 붙일 때는 열 이름뿐 아니라 테이블 이름 도 포함합니다. 예: new_stmt = old_stmt.where(my_tbl.columns.my_col == 15). 이는 기존 구문이 여러 테이블을 포함할 수 있기 때문에 필요합니다.

반면, insert는 한 번에 하나의 테이블에만 레코드를 삽입할 수 있으므로, values()로 삽입할 때는 테이블 이름을 포함할 필요가 없습니다. 예: stmt = insert(my_table).values(my_col = 10).

여기에서 테이블 이름은 data입니다. 콘솔에서 repr(data)를 실행해 테이블 구조를 확인해 보세요.

이 연습은 강의의 일부입니다

Python으로 배우는 데이터베이스 입문

강의 보기

연습 안내

  • sqlalchemy 모듈에서 insertselect를 임포트하세요.
  • data 테이블에 대해 insert_stmt를 작성해 name'Anna', count1, amount1000.00, validTrue로 설정하세요.
  • connection으로 insert_stmt를 실행하고 results에 저장하세요.
  • 몇 개의 레코드가 삽입되었는지 확인할 수 있도록 results.rowcount 속성을 출력하세요.
  • name'Anna'인 레코드를 data에서 조회하는 select 구문을 작성하세요.
  • 해결책을 실행해 select 구문 실행 결과를 출력하세요.

실습형 인터랙티브 연습

이 예제를 이 샘플 코드를 완성하여 풀어보세요.

# Import insert and select from sqlalchemy
from sqlalchemy import ____, ____

# Build an insert statement to insert a record into the data table: insert_stmt
insert_stmt = insert(____).values(name=____, ____, ____, ____)

# Execute the insert statement via the connection: results
results = connection.execute(____)

# Print result rowcount
print(____)

# Build a select statement to validate the insert: select_stmt
select_stmt = select([data]).where(____ == ____)

# Print the result of executing the query.
print(connection.execute(select_stmt).first())
코드 편집 및 실행