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) (정수 값) |