코딩일기/TIL
[Sequelize] CRUD, 원하는 컬럼만 출력, 컬럼 합치기
캡틴.JS
2019. 11. 14. 00:42
반응형
1. 대상하나만 조회하기
select * from table where id='202';
models.table명.findOne({where:{id:202}})
2. 삽입하기
insert into table(컬럼명) values (넣고자하는 값);
models.table명.create(넣고자하는값)
3. 삭제하기
delete from table명 where id ='202';
models.table명.destroy({where: {id: '202'}})
4. 수정하기
update table명 set 컬럼명 = 변경될 값 where id='202'; //where 절은 조건넣어주면됨
models.table명.update(변화시킬값, {where: {id: '202'}})
5. 전체 다 조회하기
select * from table명;
models.table명.findAll()
그럼 원하는 컬럼만 보고 싶을때는??
select popupStartDate, popupEndDate from table명 ;
으로 쿼리를 작성한다. 시퀄라이즈를 이용할때는 attributes 기능을 이용한다.
models.noticePopup.findAll({attributes: ['popupStartDate','popupEndDate']}
그럼 컬럼 두개를 합치고, 합친 컬럼 이름을 변경하려면?
아래와 같이 배열의 배열로 감싸고 합친 컬럼의 이름을 배열의 1번 인덱스 자리에 명시한다.
models.noticePopup.findAll({
attributes: [
[models.sequelize.fn('concat',sequelize.col('popupStartDate'),' ',sequelize.col('popupStartTime')),'CompareStartTimes' ]
]
}
시퀄라이즈에서 ~이상, 이하, 미만 등의 표현을 사용하고자 할때는 [sequelize.Op.xxx]을 이용한다
where 조건
And 조건과 Or조건 동시에 사용하기
예를 들어 ProgressStatus가 000이고, 날짜/시간이 '2019-11-12 11:59'이상이고 '2019-11-13 11:59' 미만일때의 정보를 출력한다면?
{where : sequelize.and({progressStatus: 'progressStatus002'}
,sequelize.or({CompareStartTimes: {[sequelize.Op.gte]:param.popupStartDate+' '+param.popupStartTime}}
,{CompareEndTimes:{[sequelize.Op.lte]:param.popupEndDate+' '+param.popupEndTime}}
)
)}
시퀄라이즈 쿼리 메뉴얼 : https://sequelize.org/master/manual/querying.html
반응형