[파이썬] SQLAlchemy Query API 활용

SQLAlchemy는 Python에서 데이터베이스를 다루는 데 사용되는 강력한 ORM(Object Relational Mapping) 라이브러리입니다. SQLAlchemy Query API를 활용하면 데이터베이스로부터 데이터를 가져오고 조작하는 작업을 간편하게 수행할 수 있습니다. 이번 블로그 포스트에서는 SQLAlchemy Query API를 활용하는 방법에 대해 알아보겠습니다.

SQLAlchemy란?

SQLAlchemy는 Python에서 관계형 데이터베이스에 접근하고 조작하는 데 사용되는 도구입니다. ORM 기능을 제공하여 데이터베이스 테이블을 객체로 추상화하고, Python 객체와 데이터베이스 테이블 간의 매핑을 간단하게 처리할 수 있도록 합니다. SQLAlchemy는 여러 데이터베이스 시스템과 호환되며, 데이터베이스에 대한 접근을 추상화하여 일관된 인터페이스를 제공합니다.

Query API 사용하기

SQLAlchemy의 Query API를 사용하여 데이터베이스에서 데이터를 조회하는 것은 간단합니다. 먼저 SQLAlchemy에서 제공하는 Session 객체를 생성하고, 해당 Session 객체에서 데이터베이스 작업을 수행합니다. 아래는 SQLAlchemy Query API를 사용하여 데이터베이스에서 특정 조건을 만족하는 데이터를 조회하는 간단한 예제입니다.

from sqlalchemy import create_engine
from sqlalchemy.orm import sessionmaker
from models import User

# 데이터베이스 연결 생성
engine = create_engine('postgresql://username:password@localhost/mydatabase')
Session = sessionmaker(bind=engine)
session = Session()

# 조건에 맞는 데이터 조회
users = session.query(User).filter(User.age > 18).all()

# 결과 출력
for user in users:
    print(user.name)

위 예제에서는 User 모델을 정의하고, User 테이블에 대한 데이터베이스 연결을 생성합니다. 그 후 session.query() 함수를 사용하여 User 객체를 조회하고, filter() 함수로 조건을 설정합니다. 마지막으로 all() 함수를 호출하여 조건에 맞는 모든 결과를 가져옵니다. 가져온 결과를 순회하며 원하는 데이터를 활용할 수 있습니다.

Query API의 다양한 기능

SQLAlchemy Query API는 다양한 기능을 제공하여 데이터베이스 작업을 유연하게 수행할 수 있습니다. 몇 가지 예를 들어보겠습니다.

정렬

users = session.query(User).order_by(User.name).all()

order_by() 함수를 사용하여 결과를 정렬할 수 있습니다. 위 예제에서는 User 객체를 name 속성을 기준으로 오름차순으로 정렬합니다.

제한

users = session.query(User).limit(10).all()

limit() 함수를 사용하여 결과를 특정 개수로 제한할 수 있습니다. 위 예제에서는 최대 10개의 결과만 가져옵니다.

집계

count = session.query(User).count()

count() 함수를 사용하여 결과의 총 개수를 구할 수 있습니다. 위 예제에서는 User 테이블에 있는 데이터의 개수를 구합니다.

마무리

이번 블로그 포스트에서는 SQLAlchemy Query API를 활용하는 방법에 대해 알아보았습니다. SQLAlchemy Query API를 사용하여 데이터베이스 작업을 수행하는 것은 간단하고 편리하며, 다양한 기능을 활용하여 원하는 결과를 쉽게 얻을 수 있습니다. SQLAlchemy는 다양한 데이터베이스 시스템과 호환되므로, 데이터베이스 작업에 이용할 수 있는 강력한 도구입니다.

더 많은 정보와 자세한 사용법은 SQLAlchemy 공식 문서를 참조하시기 바랍니다.