시퀀스 쿼리 사용하기
INSERT INTO nodejs.users (name, age, married, comment) VALUES ('zero', 24, 0, '자기소개1');
-> const { User } = require('../models'); // require : 해당폴더 안에서 index.js 폴더를 찾는다
const { Op } = require('sequelize');
User.create({
name: 'zero',
age: 24,
married: false,
comment: '자기소개1;,
});
SELECT name, married FROM nodejs.users;
-> User.findAll({
attributes:['name', 'married'],
});
SELECT name, age FROM nodejs.users WHERE married = 1 AND age > 30;
-> User.findAll({
attributes: ['id', 'name'],
where: {
[Op.or]: [{ married: true }, { age: { [OP.gt]: 30 } }],
},
});
SELECT id, name FROM users WHERE married = 0 OR age > 30;
-> User.findAll({
attributes:['id', 'name'],
where: {
[Op.or]: [{ married: false }, {age: {Op.gt]: 30 }],
},
});
SELECT id, name FROM users ORDER BY age DESC LIMIT 1 OFFSET 1;
-> User.findAll({
attributes: ['id', 'name'],
order: [['age', 'DESC']],
limit: 1,
offset: 1,
});
수정
UPDATE nodejs.users SET comment = '바꿀 내용' WHERE id = 2;
->User.update({
comment: '바꿀 내용'
}, {
where: { id: 2 },
});
삭제
DELETE FROM nodejs, users WHERE id = 2;
->User.destory({
where: { id: 2 },
});
관계 쿼리
const user = await User.findOne({});
console.log(user.nidck); // 사용자 닉네임 결과값이 자바스크립트 객체
include로 JOIN과 비슷한 기능 수행 가능
-> const user = await User.findOne({
include: [{
model: Comment,
}]
});
get+모델명으로 데이터 로딩 가능(수정은 set, 삭제는 remove)
-> const user = await User.findOne({});
const comments = await user.getComments();
as로 모델명 변경 가능
-> db.User.hasMany(db.Comment, { foreignKey: 'commenter', sourceKey 'id', as: 'Answers' });
-->const user = awit User.findOne({});
const comments = await user.getAnswers();
ROW 쿼리
-> const [result, metadata] = await sequelize.query('SELECT * from comments');
'SQL' 카테고리의 다른 글
mysql 유저 생성후 권한 줄때 에러 해결방법 (0) | 2021.12.27 |
---|---|
Mysql 설치시 server has failed 에러 해결 방법 중 하나 (0) | 2021.12.27 |
MYSQL - NodeJS 2.1 (0) | 2021.04.08 |
MYSQL - NodeJS 3 (0) | 2021.04.08 |
MYSQL - NodeJS 2 (0) | 2021.04.08 |
댓글