이번에는 로우를 조회하는 쿼리들입니다.
다음은 users 테이블의 모든 데이터를 조회하는 SQL문입니다. findAll 메서드를 사용하면 됩니다.
SELECT * FROM nodejs.users; User.findAll({});
다음은 Users 테이블의 데이터 하나만 가져오는 SQL문입니다. 앞으로 데이터를 하나만 가져올 때는 findOne 메서드를, 여러 개 가져올 때는 findAll 메서드를 사용한다고 생각하면 됩니다.
SELECT * FROM nodejs.users LIMIT 1; User.findOne({});
attributes 옵션을 사용해서 원하는 컬럼만 가져올 수도 있습니다.
SELECT name, married FROM nodejs.users; User.findAll({ attributes: ['name', 'married'], });
where 옵션이 조건들을 나열하는 옵션입니다.
SELECT name, age FROM nodejs.users WHERE married = 1 AND age > 30; const { Op } = require('sequelize'); const { User } = require('../models'); User.findAll({ attributes: ['name', 'age'], where: { married: true, age: { [Op.gt]: 30 }, }, });
MySQL에서는 undefined라는 자료형을 지원하지 않으므로 where 옵션에는 undefined가 들어가면 안 됩니다. 빈 값을 넣고자 하면 null을 대신 사용하세요.