2024/09/08 2

[SQLAlchemy] (4) DML 예시 (by sqlalchemy 2.0)

sqlalchemy 2.0 특징SQL Core의 select(), insert(), update(), delete()- DML 함수들이 Core와 ORM 상호작용 공통의 방식으로 채택됨 Query 객체- defrecated 되었음. (링크)from sqlalchemy.orm import Query# legacy 처리 됨 (2.0 에서)q = session.query(SomeMappedClass) execute- core방식, orm 방식 둘다 사용 가능- core 방식 : conn.execute(stmt)- orm 방식 : session.execute(stmt)- session.execute(stmt) => Result 객체를 반환- Result 객체를 이용해 다양한 형태의 결과 처리 및 제어 가능 ex..

DB/Sqlalchemy 2024.09.08

[SQLAlchemy] (3) 모델 선언 방법 (선언형, 명령형)

개요SQLAlchemy에서 모델과 DB를 연결하기 위해서는, 객체-관계 매핑 (ORM)을 수행하는데 '사용 방법(문법)과 코드 스타일'에 있어 명령형, 선언형 두가지 방향성을 제시한다.물론 뻔한말로 프로젝트의 요구사항과 팀 방향성에 따라 선택 될 수 있다. Declarative Mapping은 더 간결하고, 유지보수가 쉬우며, 대부분의 일반적인 사용 사례에 적합한 반면,Imperative Mapping은 더 복잡하고, 맞춤형 데이터베이스 매핑이 필요한 경우 등에 유리두 방법을 혼합하여 사용할 수도 있으며, 상황에 따라 적절한 방식을 선택하는 것이 중요 Declarative Mapping 방식에서도 기존에 사용하던 방식 외에 2.0이 되면서 Mapped, mapped_column 이란 문법을 통해 좀더 o..

DB/Sqlalchemy 2024.09.08