항해14기 본과정/항해14기 개발일지

[항해 14기] 개발일지19 (SQL, Sequelize)

스쿼트잘함 2023. 4. 24. 22:02

Node.js 숙련

 

1. SQL

1) 개요

- vscode my sql익스텐션에서 쿼리명령어로 진행가능

- db : 테이블/컬럼으로 구성 (고도화된 엑셀 개념)

2) 쿼리 명령어

- 테이블 생성

- 데이터 삽입

- 데이터 조회

3) 제약조건

- 컬럼들간의 제한사항을 관리하고, 조건을 위반하는 데이터를 방지하여 데이터베이스의 완전성을 보장하는 규칙
- 데이터가 결함없이 완벽한 상태인 무결성(Integrity)을 지키기 위해 만들어진 개념
- 테이블을 분석할 때 설정된 컬럼 속성들을 바탕으로 해당 테이블이 어떤 역할을 하는지 명확하게 인지 가능
4) 제약조건 종류

- 테이블 데이터의 고유성을 보장하는(Primary Key)

- 빈 값을 허용하지 않는 조건(Null)

- 특정 컬럼이 중복된 키를 가질 수 없는 조건(Unique)

- 테이블 간의 관계를 설정하는 조건(Foreign Key)

- 1:1, 1:N, N:M 등 설정가능

5) 외래조건 심화

- 참조데이터 변경/삭제시 4가지 상태 설정 가능

- CASCADE 함께 변경/삭제

- NO ACTION 아무런 행위 없음

- SE NULL null값으로 변경

- SET DEFAULT 기본갑승로 변경

- SELECT JOIN 공통된 데이터를 기준으로 테이블을 연결하여 하나의 테이블처럼 표현 가능

 

 

 

2. Sequelize

1) 개요

- orm의 하나 (https://jujiprogram.tistory.com/54)

- mongoose와 비교

2) 기본 설정

- npm sequelize init, config설정

- npx sequelize db:create