Sequelize 튜토리얼(12)_CRUD 작업

차분한열정·2021년 4월 8일
0

Sequelize 튜토리얼

목록 보기
12/14

이제 각 테이블에 초기 데이터도 삽입해보았으니 간단한 CRUD 작업을 하는 법을 알아보자.

1. CREATE

이것은 이미 배웠습니다.

const cheolsu = Student.build({
    registrationNum: 20203718,
    name: '김철수',
    age: 22,
  });
await cheolsu.save();

이렇게 build-save 메소드를 쓰거나

const cheolsu = await Student.create({
    registrationNum: 20203718,
    name: '김철수',
    age: 22,
  });

create 메소드를 쓰는 방법이 있었죠.

2. READ

데이터 조회는 어떻게 할까요? 여러 메소드들이 있지만 일단 findAll과 findOne을 배워봅시다.

const students = await Student.findAll();

이렇게 하면 Students 테이블의 모든 row들이 조회됩니다. 이때 배열 안에 모든 학생들이 담겨서 리턴됩니다. 만약 특정 row들만 조회하고 싶다면 WHERE 절을 지정해야겠죠? WHERE 절은
이렇게 지정할 수 있습니다.

const students = await Student.findAll({
where: {
    age: {
      [Op.or]: {
        [Op.lte]: 20,
        [Op.gt]: 30
      }
    }
});

이것은 Students 테이블에서 age 컬럼의 값이 20 이상 30 미만에 해당하는 row들 그러니까 20대 학생들만 추리는 코드입니다. 해당하는 학생들만 배열에 담겨서 리턴됩니다.

자, 이제 findOne 메소드를 볼까요?

const students = await Student.findAll();

findOne은 딱 하나의 객체만, 그러니까 딱 하나의 row 정보만 리턴하는데요. 특정 row 하나만 리턴하거나 또는 정렬을 해서 1위만 찾거나 할 때 사용합니다.

const student = await Student.findOne({ order: [['age', 'DESC']]});

이것은 학생을 나이순으로 내림차순 정렬해서 가장 나이가 많은 학생 정보를 구해오는 것입니다.

이밖에도 SELECT에 관한 다양한 내용들은 직접 공식 문서를 찾아서 보는 게 좋습니다. 내용이 어렵지 않습니다.

3. UPDATE

await Student.update({ name: '김새롬' }, {
  where: {
    registrationNum: 20208712
  }
});

4. DELETE

await Student.delete({
  where: {
    registrationNum: 20208712
  }
});

별로 어려운 내용들은 아니니 직접 공식 문서를 참조하세요.

profile
성장의 기쁨

0개의 댓글