<Python> SQLAlchemy 사용법

반응형

데이터베이스는 어플리케이션에서 중요한 역할을 하는 데이터 저장 및 관리를 담당합니다. 파이썬에서 데이터베이스 작업을 수행하기 위해 사용할 수 있는 라이브러리 중에 하나는 SQLAlchemy입니다.

SQLAlchemy는 파이썬 개발자가 다양한 데이터베이스 시스템과 작업할 수 있도록 지원하는 ORM(Object Relational Mapper) 중 하나입니다. 이 글에서는 SQLAlchemy를 사용하여 파이썬에서 데이터베이스 작업을 수행하는 방법을 설명하겠습니다.

SQLAlchemy 설치 및 설정

먼저, SQLAlchemy를 사용하기 위해 해당 라이브러리를 설치합니다.

pip install SQLAlchemy

데이터베이스 연결하기

첫 번째 단계는 데이터베이스 엔진을 생성해야 합니다. 여기 예제에서는 SQLite 데이터베이스를 사용하겠습니다.

from sqlalchemy import create_engine

engine = create_engine("sqlite:///example.db")

이 명령은 'example.db'라는 SQLite 데이터베이스 파일에 접속하는 엔진을 생성합니다.

테이블 생성

적절한 테이블 구조를 정의하기 위해 클래스를 생성하고, 이를 SQLAlchemy의 Base 클래스를 상속받게 합니다. 이렇게 하면 테이블을 생성하고 관리하기 쉽습니다.

먼저 declarative_base 함수를 사용하여 Base 변수를 생성합니다.

from sqlalchemy.ext.declarative import declarative_base

Base = declarative_base()

이제 테이블을 정의할 클래스를 생성합니다.

from sqlalchemy import Column, Integer, String

class User(Base):
    __tablename__ = "users"

    id = Column(Integer, primary_key=True)
    name = Column(String)
    age = Column(Integer)

이 클래스는 users 테이블을 나타내며, id, name, age라는 세 개의 열을 갖습니다.

테이블을 실제로 생성하려면 Base.metadata.create_all 메소드를 호출하고 엔진을 전달합니다.

Base.metadata.create_all(engine)

이제 데이터베이스에 새로운 테이블 users가 생성됩니다.

데이터 추가

새로운 데이터를 데이터베이스에 추가하려면 클래스의 인스턴스를 만들고 이를 세션 객체를 사용해 데이터베이스에 저장합니다.

데이터를 저장하고 관리하려면 세션 메이커를 생성해야 합니다.

from sqlalchemy.orm import sessionmaker

Session = sessionmaker(bind=engine)

이제 세션을 이용해 데이터를 추가할 수 있습니다.

user = User(name="John", age=30)

session = Session()
session.add(user)
session.commit()

이 명령은 "John"이라는 이름과 30세의 나이를 가진 새로운 사용자를 users 테이블에 추가합니다.

데이터 조회

세션을 이용하여 데이터를 조회할 수 있습니다.

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

for user in users:
    print(f"{user.id}: {user.name}, {user.age}")

이 코드는 모든 사용자 데이터를 가져와 출력합니다.

데이터 수정

세션을 이용하여 데이터를 수정할 수 있습니다.

user = session.query(User).filter(User.name == "John").first()

if user is not None:
    user.age = 32
    session.commit()

이 코드는 이름이 "John"인 사용자의 나이를 32로 변경합니다.

데이터 삭제

세션을 이용하여 데이터를 삭제할 수 있습니다.

user = session.query(User).filter(User.name == "John").first()

if user is not None:
    session.delete(user)
    session.commit()

여기서는 "John"이라는 이름의 사용자를 삭제합니다.

이 글에서는 파이썬에서 SQLAlchemy를 이용하여 데이터베이스 작업을 수행하는 방법을 소개하였습니다.

SQLAlchemy를 사용하면 다양한 데이터베이스 시스템과 작업하기 쉽고 효율적입니다. 

 

감사합니다.

Designed by JB FACTORY