728x90
반응형
SMALL
SQL문이 아닌 JS를 사용해 DB안의 값을 불러 올거다
Create(생성) |
||
SQL | ![]() |
models 모듈에서 User 모델을 불러와 create 메서드를 쓰면됨. ※ 데이터를 넣을 시 MySQL의 자료형이 아닌 Sequelize 모델에 정의한 자료형대로 넣어야 함. (이게 married가 0 이 아닌 false인 이유) 알아서 MySQL 형태로 바꿔주기 때문에 Sequelize에 부합하지 않는걸 넣을 시 에러가 날 수 있다 |
Sequelize | ![]() |
Read(조회) |
||
SQL | ![]() |
테이블의 데이터 다 가져오기 |
Sequelize | ![]() |
|
SQL | ![]() |
테이블의 데이터 하나만 가져오기 |
Sequelize | ![]() |
|
SQL | ![]() |
테이블 안 원하는 조건의 컬럼 데이터만 가져오기 |
Sequelize | ![]() |
|
SQL | ![]() |
테이블 안 조건을 걸어 해당하는 데이터만 가져오기 - MySQL에는 JS에 있는 undefined라는 자료형이 없다. 때문에 빈값을 넣으려면 null을 쓰자 - 시퀄은 JS 객체를 통해 쿼리를 생성하기 때문에 Op.gt 같은 특수 연산자들이 사용된다. Sequelize안의 [ Op.gt(초과) | Op.gte(이상) | Op.lt(미만) | Op.lte(이하) | Op.ne(같지않음) | Op.or(또는) | Op.in(배열 요소에 포함) | Op.notIn(배열 요소에 불포함) ] |
Sequelize | ![]() |
|
SQL | ![]() |
Op.or 속성에 OR 연산을 적용할 qurey들을 배열로 나열하면 됨. |
Sequelize | ![]() |
|
SQL | ![]() |
- Sequelize 의 정렬 하는방법이다. - 배열안의 배열인점 주의해야함 (두 컬럼이상으로도 정렬을 할 수도 있기 때문) |
Sequelize | ![]() |
|
SQL | ![]() |
조회 할 row 갯수 설정하는 방법. (LIMIT 1 인경우 findAll 대신 findOne을 써도 되지만, limit 옵션을 쓸수도 있음.) |
Sequelize | ![]() |
|
SQL | ![]() |
OFFSET 역시 offset 속성으로 구현 가능함. |
Sequelize | ![]() |
Update(수정) |
||
SQL | ![]() |
update 메서드로 수정 가능! 첫번째 인수 = 수정할 내용 두번째 인수 = 어떤 row 수정할지 조건 (where 옵션에 조건을 넣는다.) |
Sequelize | ![]() |
Delete(삭제) |
||
SQL | ![]() |
destory 메서드로 삭제! where 옵션에 조건을 넣는다. |
Sequelize | ![]() |
관계 쿼리
MySQL의 JOIN같은 기능을 Sequelize에서도 구현이 된다.
User 모델은 Comment 모델과 hasmany - belongsTo 관계가 맺어져 있다는걸 기억해야 한다.
특정 사용자를 가져오면서
그 사람의 댓글 까지 모두 갖고 오고 싶다면?
![]() |
어떤 모델과 관계가 있는지 이 include 배열에 넣어주면 됨. (배열인 이유는 다양한 모델과 관계가 있을 수 있기 때문임.) |
댓글에만 접근 할 수도 있다.
![]() |
이렇게 관계를 설정했다면 getComments(조회) | setComments(수정) | addComment(하나 생성) | addComments(여러개 생성) | removeComments(삭제) 등의 메서드를 지원 한다 |
동사 뒤에 모델의
이름동사 뒤의 모델 이름을
바꾸고 싶다면?
저 관계 설정 시 as 옵션을 쓰면됨.
![]() |
관계를 설정 할 때 등록 시에 먼저 as로 등록을 한다음(model에서 하는거 알쥬?) 쿼리 할때는 이렇게 쓰면 된다. |
이렇게 as를 설정하게 되면
include 시 추가되는 댓글 객체도
user.Ansers로 바뀜.
![]() 댓글 불러오는데 id 가 1인 값만 가져오기 |
include나 관계 쿼리 메서드에도 where이나 attributes 같은 옵션을 쓸 수 있다. |
![]() 컬럼 id가 1인 값만 가져오기 |
쿼리 조회는 이렇게 되지만
![]() |
수정 | 생성 | 삭제 는 좀 다름. |
![]() |
여러 개를 추가 할땐 배열로 추가 할 수 있음 |
SQL 쿼리로 쓰기
만약 지금까지 했던거 잘 모르겠으면
그냥 늘 쓰던 SQL 쿼리를 쓰는 방법이 있다
(사실 이게 더 편함. . 이게 더 쉽고 익숙함.)
난 이 방식이 더 편리하다 생각하는데..
ORM을 쓰는편이 좋다고 한다.
이건 Sequelize 쿼리로 할 수 없는 경우에만 사용하도록 하자.
728x90
'Back-End Frameworks > Node.js' 카테고리의 다른 글
17)Nodejs_간이 SNS 서비스 만들기_(1) npm init, 각 필요 모듈설치, 미들웨어 설정, 각페이지 만들고, UI 만드는거 까지.. 템플릿 엔진도 만듦 (0) | 2023.07.23 |
---|---|
16)Nodejs_MySQL(5)_쿼리 수행 (본게임 시작.)_기본형태. .? (0) | 2023.07.23 |
14)Nodejs_MySQL(3)_Sequelize, models (0) | 2023.07.21 |
13)Nodejs_MySQL(2)_DB, 테이블 생성, CRUD (0) | 2023.07.20 |
12)Nodejs_ MySQL(1)_SQL언어를 쓰는 관계형 DBMS (0) | 2023.07.19 |