ORM(Object Relational Mapping)
💡객체를 통해 간접적으로 데이터베이스를 다루는 방식
Sequelize란?
💡 ORM의 일종으로, 자바스크립트 객체와 데이터베이스의 릴레이션을 매핑해주는 도구
Sequelize 작동원리
- Express 내부의 시퀄라이저가 js파일 실행
- js 파일 내의 내부 model의 정보를 읽어서 sequelize에 적재
- Express에서 sequelize를 이용하여 DB접근(동기/비동기)
- 접근한 DB 스키마에 CRUD실행
Sequelize 주요 메서드
로우 생성 쿼리( Create)
const { User } = require('./models')
User.create({
name: '홍길동',
age: 23,
comment: '안녕하세요.'
})
로우 조회 쿼리(Read)
- findAll
테이블에 있는 모든 row들을 조회
User.findAll({})
- findOne
테이블에 있는 특정 row 하나를 조회
User.findOne({})
- attributes,where
attributes : 원하는 컬럼 가져오기
where: 조건을 나열(default는 AND)
User.findAll({ attributes: ['name', 'age'], where: { age: { [Op.gt]: 30 }, }, })
- order정렬 옵션
User.findAll({ attributes: ['name', 'age'], order: [['age', 'DESC']] })
- limit,offset
limit : 조회할 로우 개수
offset: 스킵할 로우 개수
User.findAll({ attributes: ['name', 'age'], order: [['age', 'DESC']], limit: 1, offset: 1, })
로우 수정 쿼리(update)
원하는 특정 row들을 수정
User.update({
comment: '',
}, {
where: { "조건" },
});
로우 삭제 쿼리(delete)
원하는 특정 row들을 삭제
User.destroy({
where: { "조건" },
})