INNER JOIN

Jiwon·2021년 7월 8일
0

관계형 데이터베이스는 테이블끼리 관계가 있어서 관계형DB라는 이름이 붙었다.

관계는 논리적으로 연관이 있는 두 테이블 사이의 연결을 설정.

데이터 중복을 최소화하고 관계 자체의 신뢰성과 적합성을 보장하게 된다.

두 테이블 사이에 존재할 수 있는 3가지 관계 유형

  • 1 : 1
  • 1 : N
  • N : N

1 : 1 관계

하나의 테이블이 상대 테이블과 반드시 단 하나의 관계를 가지는 것

1 : N 관계

한 쪽 테이블의 레코드가 관계를 맺은 테이블의 여러 레코드와 연결된다는 것을 의미
실제 DB를 설계할 때 자주 쓰이는 방식으로
부모 테이블, 자식 테이블 이라고 표현이 가능하다.

N : N 관계

관계를 가진 양쪽 엔티티 모두에서 1:N 관계를 가지는 것.
즉, 서로가 서로를 1:N관계로 보고 있는 것


on delete / on update 은 제약조건.

ON DELETE / CASCADE / NO ACTION / RESTRICT

제약조건을 걸지 않으면 기본으로 RESTRICT 이 걸리는데
클래스를 제거하려고할 때 (예시의)teacher가 제거되지 않을 수도 있다.
따라서 외래키가 걸려있는 레코드가 제거되지 않는다면
제약조건이 걸러져 있어서 안 지워지는구나 라고 유출가능.

JOIN

JOIN은 두 개 이상의 테이블을 연결해서 데이터를 검색하는 방법이다.

자신이 검색하고 싶은 컬럼이 다른 테이블에 있을 경우 주로 사용.
여러개의 테이블을 마치 하나의 테이블인 것처럼 활용하는 방법.

조인 종류

  • INNER JOIN
    LEFT TABLE과 RIGHT TABLE이 공통적으로 가지고 있는 녀석
    교집합 / 즉, 왼쪽과 오른쪽 모두 데이터를 가지고 있어야 한다.
  • FULL JOIN
    공통으로 가지는 걸 다 보여줌
  • LEFT JOIN
    LEFT TABLE을 기준으로 자기만 생각해서 RIGHT가 없더라도
    LEFT 위주로 다 가져온다.
  • RIGHT JOIN
    RIGHT TABLE을 기준으로 자기만 생각해서 RIGHT 위주로 다 가져온다.
    LEFT와 반대로 두 번째 테이블을 기준으로 다 가져온다.


사용 방법으로는
LEFT JOIN 첫 번째 테이블, 두 번째 테이블을 JOIN ON 이라는 조건을 이용해
합치는 조건을 설정한다.

SELECT 첫 번째 테이블 LEFT JOIN 두 번째 테이블 ON 조건


INNER JOIN


RIGHT JOIN


student_class 테이블을 만들고 데이터를 넣은 후


INNER JOIN 활용 실습

profile
과연 나는 ?

0개의 댓글