익명의 개발노트

[Sequelize] CRUD, 원하는 컬럼만 출력, 컬럼 합치기 본문

코딩일기/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

반응형
Comments