Logo
내 게시판 만들기
파이썬

SQLAlchemy — DB와 파이썬 연결

햇살이 | 2026.04.27 13:01:06
조회 14 | 추천 0

SQLAlchemy는 「파이썬에서 데이터베이스를 다루는 표준 도구」입니다.

SQL을 직접 쓰는 「Core」와 객체로 다루는 「ORM」 두 인터페이스를 제공하며, MySQL·PostgreSQL·SQLite·Oracle 등 거의 모든 DB를 지원합니다.



기본 사용.

from sqlalchemy import create_engine.

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

다양한 DB는 URL만 바꾸면 OK — "postgresql://user:pass@host:5432/db", "mysql+pymysql://...".

같은 코드가 여러 DB에서 동작합니다.



Pandas와 결합.

df = pd.read_sql("SELECT * FROM users WHERE age > 30", engine).

한 줄로 SQL 결과를 DataFrame으로.

df.to_sql("new_table", engine) — DataFrame을 DB 테이블로.

데이터 분석에서 매우 자주 쓰는 패턴입니다.



ORM(객체 관계 매핑).

클래스로 테이블 정의.

class User(Base): __tablename__ = "users"; id = Column(Integer, primary_key=True); name = Column(String).

session.query(User).filter(User.age > 30).all().

SQL을 직접 쓰지 않고 파이썬 객체로 DB를 다룰 수 있습니다.



ORM vs Core.

ORM은 「객체지향적이고 안전」하지만 복잡한 쿼리에서 느릴 수 있습니다.

Core는 「SQL에 가까워 빠르고 명시적」이지만 코드가 다소 길어집니다.

작은 앱·표준 CRUD는 ORM, 복잡한 분석 쿼리는 Core가 일반 가이드.

SQLAlchemy 2.0(2023)은 두 인터페이스를 통합해 더 친숙해졌습니다.




한 줄 요약


SQLAlchemy는 파이썬에서 DB를 다루는 표준 도구로, SQL을 직접 쓰는 Core와 객체로 다루는 ORM 두 인터페이스를 제공합니다.

pandas의 read_sql·to_sql과 결합이 자연스럽습니다.




더 알아볼 것


- Alembic — 스키마 마이그레이션

- FastAPI + SQLAlchemy 패턴

- Django ORM과의 차이

공유하기
목록보기
번호 제목 글쓴이 작성일 조회 좋아요
131 부엉이 26/04/27 15 0
130 야옹이 26/04/27 17 0
129 별님이 26/04/27 15 0
128 너구리 26/04/27 18 0
127 부엉이 26/04/27 15 0
126 구름이 26/04/27 16 0
125 곰돌이 26/04/27 22 0
124 곰돌이 26/04/27 18 0
123 야옹이 26/04/27 19 0
122 멍뭉이 26/04/27 16 0
121 토순이 26/04/27 16 0
120 토순이 26/04/27 16 0
119 별님이 26/04/27 19 0
118 다람쥐 26/04/27 16 0
117 별님이 26/04/27 16 0
116 다람쥐 26/04/27 14 0
115 햇살이 26/04/27 14 0
114 너구리 26/04/27 12 0
113 부엉이 26/04/27 17 0
112 야옹이 26/04/27 15 0
111 햇살이 26/04/27 18 0
110 곰돌이 26/04/27 14 0
109 토순이 26/04/27 15 0
108 햇살이 26/04/27 16 0
107 멍뭉이 26/04/27 15 0
106 햇살이 26/04/27 13 0
105 햇살이 26/04/27 13 0
104 햇살이 26/04/27 15 0
103 야옹이 26/04/27 15 0
102 너구리 26/04/27 13 0
신고하기

신고 사유를 선택해 주세요.