Python

DB

DGeon 2025. 12. 11. 13:36
CRUD SQL 예시 SQLAlchemy 2.0 코드 결과 반환 메서드
SELECT All SELECT * FROM users; stmt = select(User) db.scalars(stmt).all() (객체 리스트)
SELECT One SELECT * FROM users WHERE id = 10; stmt = select(User).where(User.id == 10) db.scalars(stmt).one_or_none() (단일 객체 또는 None)
UPDATE UPDATE users SET name = 'New Name' WHERE id = 10; stmt = update(User).where(User.id == 10).values(name="New Name") db.execute(stmt); db.commit(
DELETE DELETE FROM users WHERE id = 10; stmt = delete(User).where(User.id == 10) db.execute(stmt); db.commit()
INSERT INSERT INTO users (name) VALUES ('Dgeon'); new_user = User(name='Dgeon');
db.add(new_user);
db.commit()
db.refresh(new_user) (ID 등을 위해)
INNER JOIN   stmt = select(User, Item).join(Item)
select(User, Item).join(Item).where(User.name == Item.title)
db.execute(stmt).all() (튜플 리스트)
LEFT JOIN   stmt = select(User, Item).outerjoin(Item) db.execute(stmt).all() (튜플 리스트)
COUNT All SELECT count(*) FROM users; stmt = select(func.count()).select_from(User) db.scalar(stmt) (정수 값)
COUNT Filter SELECT count(*) FROM users WHERE name = 'Alice'; stmt = select(func.count()).where(User.name == 'Alice') db.scalar(stmt) (정수 값)