Programming Learning Diary

Sequelize

페이지 정보

작성일 21-01-13 01:03

본문

nodejs에서 mysql을 쉽게 다룰 수 있도록 도와주는 라이브러리로, ORM(Object-relational Mapping)으로 분류된다. sql 작성법을 모르더라도 데이터베이스 관리가 가능하다. 


ORM이란 객체와 관계형 데이터베이스의 데이터를 자동으로 매핑(연결)해주는 것을 말한다. 객체 지향 프로그래밍은 클래스를 사용하고, 관계형 데이터베이스는 테이블을 사용한다. 

equelize는 자바스크립트 객체와 데이터베이스의 릴레이션을 매핑해주는 유용한 도구라는 의미이다! 자바스크립트 구문을 알아서 SQL문으로 변경해준다. 

sequelize & mysql2 패키지 설치

$ npm i sequelize mysql2
$ npm i -g sequelize-cli
$ sequelize init
sequelize 커맨드를 사용하기 위해 cli를 전역으로 설치해주고
sequelize init명령어를 호출하면 필요한 파일들과 폴더들을 알아서 설치해준다!





sequelize.sync()는 Sequelize가 초기화 될 때 DB에 필요한 테이블을 생성하는 함수입니다. 예를 들면 quiz라는 모델이 있다면 CREATE TABLE IF NOT EXISTS `Quizzes`로 시작하는 SQL을 실행하여 모델로 정의된 테이블을 생성합니다. 




Sequelize의 Query사용법

  • Sequelize의 INSERT, SELECT, UPDATE, DELETE 함수들

INSERT 함수

  • create(values: Object, options: Object) : 레코드 생성 함수이다.
  • findOrCreate(options: Object): 조회 시 없으면 생성해주는 함수이다.
  • findCreateFind(options: Object) : 조회 시 없으면 생성 후 조회하는 함수이다.
  • upsert(values: Object, options: Object) : 한 레코드만 인서트하거나 업데이트 해주는 함수.

SELECT 함수

  • findOne(options: Object) : 하나만 조회하는 함수이다. find()와 동일
  • findAll(options: Object) : 여러 개를 조회하는 함수이다.
  • findAndCountAll(findOptions: Object) : 조회 후 총 수까지 알 수 있다. 조회 객체.count로 접근
  • findByPk(id: Number | String | Buffer, options: Object) : 프라이머리키로 조회하는 함수이다.
  • findCreateFind(options: Object) : 조회 시 없으면 생성 후 조회하는 함수이다.
  • findOrCreate(options: Object): 조회수 없으면 생성해주는 함수이다.

UPDATE 함수

  • update(values: Object, options: Object) : 값을 업데이트 해주는 함수. 여러 레코드도 가능.
  • upsert(values: Object, options: Object) : 한 레코드만 인서트하거나 업데이트해 주는 함수.

DELETE 함수

  • destroy(options: Object) : 한 개나 여러 레코드를 삭제하는 함수.

댓글목록

등록된 댓글이 없습니다.