MySQL - 복수의 테이블 사용하기 (테이블 컬럼 참조, join)

반응형

테이블 컬럼 참조 (Reference)

여러개의 테이블이 각각의 독립적인 데이터를 지니기에는 데이터가 방대해질수록 중복되는 내용이 많아 질 수 있음

때문에 기존에 존재하는 데이터를 이용하여 재사용하는 것을 의미, 중복 데이터를 최소화함으로써 데이터 용량 최적화

 

  • 예시) customers 테이블의 'customer_id' 를 orders 테이블의 'customer_id' 로 이용

 

MySQL에서 테이블 참조하기

  • 테이블과 컬럼 생성
    • 참조 할 컬럼은 반드시 참조 될 컬럼과 데이터타입을 맞춰줘야 함

 

  • 참조 설정
    • 테이블 설정에서 Foreigm Keys 탭 이동
      • 1. Foreign Key Name : 이름 지정
        2. Referenced Table : 참조할 테이블 선택
        3. Column : 참조 될 컬럼 선택
        4. Referenced Column : 참조 할 컬럼 선택
    • 참조가 되지 않을 경우 데이터타입이 다를 수 있으므로 꼭 확인

 

복수의 테이블 합쳐서 사용하기 (join)

  • 관계형 데이터베이스(RDBMS)에서 많이 사용
  • 테이블끼리 서로 연결해주는 역할 (기본적으로 곱집합)
  • on을 이용하여 교집합으로 출력 할 수 있음
    • select * from 테이블1 join 테이블2 on 수식
    • 수식 부분에 각 테이블에 참조 관계인 컬럼을 연결하면 테이블1과 테이블2의 교집합 데이터 출력

 

  • 테이블 두개를 합쳐서 출력 해보기 (customers, orders)
    단, customers의 id와 orders의 customer_id가 일치 한 것들만!
    • select * from customers join orders on customers.id = orders.customer_id;
      = select * from customers c join orders o on c.id = o.customer_id;

 

left join (right join)

  • join처럼 교집합의 값만 출력하는 것이 아닌 왼쪽(오른쪽)의 테이블의 데이터를 모두 표시
  • 즉, 다른 테이블의 값이 없어도 지정한 테이블의 값이 있으면 출력

반응형