sequelize CRUD

togongs·2021년 11월 30일
0

2021

목록 보기
14/30

ROW 생성

/* SQL */
INSERT INTO users (name, age, married) VALUES('bob', 27, 0);
​
/* 시퀄라이즈 */
User.create({
  name: 'bob,
  age: 27,
  married: false
});

ROW 조회

/* SQL */
SELECT * FROM users;
​
/* 시퀄라이즈 */
User.findAll({});

ROW 하나 조회

/* SQL */
SELECT * FROM users LIMIT 1;
​
/* 시퀄라이즈 */
User.findOne({});

특정 컬럼 조회

/* SQL */
SELECT name, married FROM users;
​
/* 시퀄라이즈 */
User.findAll({
  attributes: ['name', 'married']
});

기본적인 조건부 조회 (where, op)

/* SQL */
SELECT name, age FROM users WHERE married = 1 AND age > 20;
​
/* 시퀄라이즈 */
User.findAll({
  attributes: ['name', 'age'],
  where: {
    married: 1,
    age: {[Op.gt]: 20}
  }
});
/* SQL */
SELECT id, name FROM users WHERE married = 0 OR age < 20;
​
/* 시퀄라이즈 */
User.findAll({
  attributes: ['name', 'age'],
  where: {
    [Op.or]: [{ married: 0 }, { age: {[Op.lt]: 40} }]
  }
});

정렬

/* SQL */
SELECT id, name FROM users ORDER BY age DESC;
​
/* 시퀄라이즈 */
User.findAll({
  attributes: ['name', 'age'],
  order: [['age', 'DESC']]
});

조회할 ROW 갯수 설정 (limit, offset)

/* SQL */
SELECT id, name FROM users ORDER BY age DESC LIMIT 1 OFFSET 1;
​
/* 시퀄라이즈 */
User.findAll({
  attributes: ['name', 'age'],
  order: [['age', 'DESC']],
  limit: 1,
  offset: 1
});

limit:1, offset:1 의 뜻은
1개 인스턴스/행을 넘어가고, 거기서부터 1개 인스턴스/행을 가져온다

ROW 수정

SELECT users SET comment = '수정할 내용' WHERE id = 3;
​
/* 시퀄라이즈 */
User.update({
  comment: '수정할 내용'
}, {
  where: { id: 3 }
});

ROW 삭제

/* SQL */
DELETE FROM users WHERE id = 4;
​
/* 시퀄라이즈 */
User.destory({
  where: { id: 4 }
});

관계 JOIN

const user = await User.findOne({
    include: [{
        model: Comment
    }]
});
console.log(user.Comments); //사용자의 댓글
profile
개발기록

0개의 댓글