DB/Sqlalchemy 6

[SQLAlchemy] (5-2) DB driver 종류 (postgresql)

개요해당 글은 Sqlalchemy 공식문서를 정리한 것이다.Sqlalchemy에서 postgresql에 지원하는 여러가지 Driver 들에 대해 알아본다.postgresql은 psycopg2, pg8000, asyncpg 다.  1. psycopg2공식 문서 : https://pypi.org/project/psycopg2/특징- fast-executions-helpers 라는 성능 개선 가능 (https://www.psycopg.org/docs/extras.html#fast-execution-helpers)- batch insert 관련 유연, 강점 (관련 키워드 insertmanyvalues 등)- psycopg  연결 방법 # 연결 string# postgresql+psycopg2://user:pas..

DB/Sqlalchemy 2024.09.18

[SQLAlchemy] (5-1) DB driver 종류 (mysql/maria)

개요해당 글은 Sqlalchemy mysql 파트 공식 문서  을 정리한 것이다. Sqlalchemy에서 mysql, mariadb에 지원하는 여러가지 Driver 들에 대해 알아본다.대부분의 라이브러리들은 mysql, maria 같이 지원한다.MySQL은 5.0.2 버전 ~ 최신 릴리스까지 지원, MariaDB는 모든 최신 버전 지원한다.MySQL과 MariaDB는 기본적인 호환성을 유지하지만 개발은 계속해서 갈라지고 있음, SQLAlchemy에서는 두 DB간 가벼운 차이만 있어, DB 연결 URL 등을 변경할 필요 없음. 1. mysqlclient공식 문서 : https://pypi.org/project/mysqlclient/특징- maria db에서도 사용 가능- SQLAlchemy 공식적으로 지원..

DB/Sqlalchemy 2024.09.16

[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

[SQLAlchemy] (2) Core 방식 vs ORM 방식

개요SQLAlchemy를 통해 DB와 상호 작용하는 코드를 작성할 때 작성 방법에는 크게 2가지 방향이 있다. Core 방식과 ORM 방식. Core 방식은 SQL 문을 보다 직접적인 컨셉으로 활용하여, 성능에 이점이 있는 방법이며, ORM 방식은 Python 클래스를 데이터 베이스의 테이블에 매핑한 추상화된 방식을 제공하여 더 사용하기 쉽게 만드는 방법이다. 1. SQLAlchemy Core 방식SQL 추상화 계층을 제공하고, 데이터베이스와 직접 작업할 수 있는 저수준 SQL 툴킷보다 직접적인 SQL 쿼리 작성을 통해 표현 하는 방법Session 객체 보다는 직접적인 커넥터를 통한 연결 방법과 비슷트랜잭션 및 연결 풀링에 대해 수동으로 처리 문법적인 차이- SQL 추상화 계층 함수(SQL 친화적인)들도..

DB/Sqlalchemy 2024.08.25

[SQLAlchemy] (1) 기본 개념 및 동작 방식

SQLAlchemy 란?SQLAlchemy는 파이썬 데이터베이스 ORM(Object Realtaional Mapping) 라이브러리Python 코드를 이용해 직관적으로 DB에 대한 CRUD 를 조작 하고, 직관성 높은 코드로 개발 가능 SQLAlchemy 기본 객체1. engine- 데이터베이스와의 연결을 관리 (URL 형식의 DB 접근 주소를 필요로 함 (create_engine)from sqlalchemy import create_engine# 1. engine 생성 engine = create_engine('mysql+pymysql://:@{HOST}:{PORT}/' echo=True, pool_size=2, pool_recycle=3600, max_overflow=0, ..

DB/Sqlalchemy 2024.08.24