Sequelize 란?
• 자바스크립트 구문을 알아서 SQL로 변환해준다. |
• DB 작업을 쉽게 할 수 있도록 도와주는 ORM(객체 관계 매핑) 라이브러리 중 하나 |
• Node js에선 Sequelize과 Spring boot에선 JPA, Mybatis가 해당 매핑을 담당하는 라이브러리 |
Sequelize 실행 시 준비 사항
1. 아래의 명령어를 실행하여, Sequelize를 프로젝트에 연결시킨다. |
npm install sequelize : 시쿼라이즈를 실제 프로젝트에 설치하는 명령어 |
npm install sequelize-cli : 시퀄라이즈 명령어를 실제 실행하는 명령어 |
npm install mysql2 : mysql을 실제 연결하여 실행하는 명령어 |
2. 아래의 명령어를 실행하여 Sequelize를 사용할 초기 상태를 세팅한다. |
npx sequelize init |
Sequelize를 실제 실행하는 방법
(1) config 폴터 생성
dotenv 패키지를 설치하여 env에 있는 데이터 정보를 불러오는 방식이 훨씬 보안성 높은 사용 방식이다. |
(2) models/index.js 파일 생성
(3) 파일 명에 맞는 model을 설계하고 index에 추가
sequelize.define의 첫번쨰 인자 | 모델 이름 설정 |
sequelize.define의 두번쨰 인자 | 컬럼을 정의함 이때 컬럼명은 실제 DB 자료형과 다르니 주의하자. |
sequelize.define의 세번쨰 인자 | 모델 옵션 정의 ![]() |
Sequelize 자료형 (DataTypes)
Sequelize 자료형 (DataTypes) | MySQL 자료형 |
Sequelize.STRING | VARCHAR(255) |
Sequelize.STRING(1234) | VARCHAR(1234) |
Sequelize.TEXT | TEXT |
Sequelize.TEXT('tiny') | TINYTEXT |
Sequelize.INTEGER | INTEGER |
Sequelize.DATE | DATETIME |
Sequelize의 쿼리문
findAll() | 전체 칼럼정보를 가져온다. |
findOne() | Where문을 만족하는 칼럼정보 하나를 가져온다. |
create() | 칼럼을 추가한다. |
update() | 칼럼의 정보를 업데이트한다. |
destroy() | 칼럼을 정보를 삭제한다. |
모든 Sequelize의 함수들은 return 값이 Promise |
Relationship?
• 테이블들은 서로 관계를 맺을 수 있으며, 이를 통해 복잡한 데이터 구조를 단순화하고 관리
Sequelize에서의 1:1 관계
• 1:1 관계는 하나의 레코드가 다른 하나의 레코드와 관련되어 있는 관계를 의미
• 이 관계에서 각 레코드는 서로 한 가지 정보만을 공유
• 예시) 사용자와 프로필, 직원과 연차, 주문과 송장
• hasOne: 한 모델이 다른 모델을 가리키는 1:1 관계를 설정하는 데 사용 |
• belongsTo: 다른 모델이 한 모델을 가리키는 1:1(1:다) 관계를 설정하는 데 사용 |
Sequelize에서의 1:다 관계
• 1:다 관계는 한 쪽 레코드가 다른 쪽 레코드 여러 개와 관련되어 있는 관계
• 보통 부모 엔티티와 자식 엔티티 사이의 관계를 나타내는데 사용
• 예시) 부서와 직원, 고객과 주문, 학교와 학생
• hasMany: 한 개의 모델(테이블)이 다른 모델과 1:n 관계를 가질 때 사용 |
• belongsTo: 다른 모델이 한 모델을 가리키는 1:1(1:다) 관계를 설정하는 데 사용 |
Sequelize에서의 다:다 관계
• 다:다 관계는 양쪽 모두 서로가 서로에게 여러개씩 관계를 가진다는 의미
• 이 관계는 중간 테이블을 사용하여 구현
• 예시) 학생과 과목, 주문과 제품, 배우와 영화
• belongsToMany: 다:다 관계를 설정할 때 사용되는 메서드 |
'국비지원 공부 정리 > Mysql' 카테고리의 다른 글
데이터 제어어 (DCL) (0) | 2025.03.26 |
---|---|
JOIN (0) | 2025.03.26 |
MYSQL - DML (0) | 2025.03.26 |
데이터베이스에서 쓰이는 데이터 형식 (0) | 2025.03.26 |
MySQL - DDL (0) | 2025.03.26 |