[Python] SQLAlchemy 다양한 쿼리 레포지토리 -4

제이브로·2025년 1월 7일
0

Python

목록 보기
21/21
post-thumbnail

1. Select

sqlalchemy 2.0 스타일의 select 쿼리문

from sqlalchemy import select

select_query = (
	select(UserEntity)
		.join(
    		UserRoleEntity, UserEntity.uid == UserRoleEntity.uid
		)
		.where(UserRoleEntity.role_id == role_id)
		.order_by(UserEntity.uid)
)
result = session.execute(select_query)
users = result.scalars().all()
  • UserEntity 객체를 가져오기 위해 scalars() 사용
  • result.scalars().all() : 전체 결과를 가져온다.
  • result.scalars().first() : 첫번째 결과를 가져온다.

2. Insert

sqlalchemy 2.0 스타일의 insert 쿼리문

from sqlalchemy import insert

user_to_insert = insert(UserEntity).values(
	id=user_map.get('user_id'),
	user_name=user_map.get('user_name'),
	user_group=user_map.get('user_group')
)
session.execute(user_to_insert)
session.commit()

3. Update

sqlalchemy 2.0 스타일의 update 쿼리문

from sqlalchemy import update

user_to_update = (
	update(UserEntity)
		.where(UserEntity.id == user_id)
		.values(user_name=user_map.get('user_name'))
)

result = self.session.execute(user_to_update)
self.session.commit() 

4. Delete

sqlalchemy 2.0 스타일의 delete 쿼리문

from sqlalchemy import delete

user_to_delete = (
	delete(UserEntity)
    	.where(UserEntity.id == user_id)
)

session.execute(user_to_delete)
session.commit()
profile
기록하지 않으면 기록되지 않는다.

0개의 댓글

관련 채용 정보