[MySQL] DB 테이블 연산자 - JOIN 연산자 (두 개 이상 테이블 간의 비교검색)

2015. 12. 3. 10:57·프로젝트 관련 조사/DB
반응형

출처: http://warmz.tistory.com/276

 

JOIN (조인) 연산자
 - 두개 이상의 테이블을 연결하여 데이터를 검색할때 사용한다.
 - 데이터베이스 시스템과 그 환경의 성능을 확인하는데도 사용할 수 있다. (느린 쿼리를 사용하여 비교)
 - 조인에는 여러가지 종류가 있다.

 

 조인 종류  설명 
 내부조인(INNER JOIN)  조건을 사용해서 두 테이블의 레코드를 결합한다.
 외부조인(OUTER JOIN)  내부조인과 비슷한데 일치하지 않는 열까지 반환하며 그 열은 NULL로 반환한다.
 동등 조인(EQUI JOIN)  내부조인이다. 두 테이블 사이의 같은 행들을 반환한다.
 비동등 조인(NON-EQUI JOIN)  내부조인이다. 두 테이블 사이의 같지 않은 행들을 반환한다.
 자연 조인(NATURAL JOIN)  'ON' 절이 없는 내부조인. 같은 열 이름을 가진 두 테이블을 조인할때만 작동
 크로스 조인(CROSS JOIN)  한 테이블의 모든 행과 다른 테이블의 모든 행이 연결되는 모든 경우를 반환.
 카티젼 조인(CARTESIAN JOIN)  크로스 조인의 한 종류. 조건이 없다. (크로스 프로덕트)
 콤마 조인(COMMA JOIN)  콤마가 CROSS JOIN 키워드 대신 사용된다는 점을 제외하면 크로스 조인과 같다.
 셀프 조인(SELF JOIN)  자기 자신을 조인한다.

 



1. 내부 조인(INNER JOIN)
 - 조건을 사용하여 두 테이블의 레코드를 결합한다.
 - 동등 조인, 비동등 조인, 자연 조인 등이 있다.

 

?
1
2
3
4
Select somecolumns From table1          -- 반환되는 열
                Inner Join                    
                table2
                ON somecondition;   -- ON 또는 WHERE 조건절

 

 


 
 1) 동등 조인(EQUI JOIN)
      - 두 테이블 사이의 같은 행들을 반환한다.

 예) 각 boy가 어떤 toy를 가지고 있는지 조사한다. (매핑 확인)

 

?
1
2
3
Select boys.boy, toys.toy
From boys INNER JOIN toys
ON boys.toy_id = toys.toy_id;

 

 

 


  
 2) 비동등 조인(NON-EQUI JOIN)
     -두 테이블 사이의 같지 않은 모든 행들을 반환한다.
 
 예)

 

?
1
2
3
4
Select boys.boy, toys.toy
From boys INNER JOIN toys
ON boys.toy_id <> toys.toy_id -- <> :  같지 않음
ORDER BY boys.boy;          -- 정렬

 

 



 3) 자연 조인(NATURAL JOIN)
     - 두 테이블에 같은 이름의 열이 있을때만 동작한다.
     - ON이 필요없다.

  예) 

 

?
1
2
Select boys.boy, toys.toy
From boys NATURAL JOIN toys;

 

 

 

 


2. 외부 조인(OUTER JOIN)
  - 내부 조인과 유사하며 일치하는 것이 없을 경우 NULL로 표시한다.
  - 왼쪽 테이블은 FROM 바로 다음에 나오는 테이블이고, JOIN 뒤에 나오는 테이블이 오른쪽 테이블이다.
  - 왼쪽 외부 조인(LEFT OUTER JOIN)과 오른쪽 외부 조인(RIGHT OUTER JOIN)이 있다.
  - 왼쪽 외부 조인을 사용할 경우 왼쪽 테이블을 오른쪽 테이블에 비교한다. 오른쪽 외부 조인도 그 반대로 동작한다. 일대다 관계에 유용하다.

 유용한 예) girls가 어느 toys를 가지고 있는지 알아보도록 쿼리를 작성한다.

  i) 왼쪽 테이블을 오른쪽 테이블에 비교하는 방법 

 

?
1
2
3
Select g.girl, t.toy From girls g
Left Outer Join toys t
ON g.toy_id = t.toy_id;

 

 

 


  ii) 반대로 했을때

 

?
1
2
3
Select g.girl, t.toy From toys t
Left Outer Join girls g
ON g.toy_id = t.toy_id;

 

 

 


  
 
3. 크로스 조인(CROSS JOIN)
  - 한 테이블의 모든 행과 다른 테이블의 모든 행을 짝지워 반환한다.
  - 카티전 조인, 카티전 프로덕트 등이 있다.

 예)

 

?
1
2
Select t.toy, b.boy
From toys AS t CROSS JOIN boys AS b;

 

 




4. 셀프 조인(SELF JOIN)
  - 자기 자신을 조인한다.
  - 자기 자신을 하나씩 비교하기 위해 사용한다.
  - 하나의 테이블로 같은 정보를 가진 테이블이 두 개 있는 것처럼 쿼리를 보낼 수 있다.

  예) 각 사람의 이름(name)과 그 사람을 담당하는 보스(boss)의 이름을 가져온다. 

 


 

 

?
1
2
3
4
Select c1.name, c2.name AS boss
From clown_info c1
Inner Join clown_info c2
ON c1.boss_id = c2.id;

 

 

 

반응형
저작자표시 (새창열림)

'프로젝트 관련 조사 > DB' 카테고리의 다른 글

[버클리] 우분투에 버클리 DB 설치  (0) 2015.12.03
[MySQL]Updatable Join View  (0) 2015.12.03
[MySQL] 다른 데이터베이스의 테이블 복사하기  (0) 2015.12.03
[MySQL] 최근 데이터 가져 오는 구문  (0) 2015.12.01
[MySQL] 버젼 확인  (0) 2015.12.01
'프로젝트 관련 조사/DB' 카테고리의 다른 글
  • [버클리] 우분투에 버클리 DB 설치
  • [MySQL]Updatable Join View
  • [MySQL] 다른 데이터베이스의 테이블 복사하기
  • [MySQL] 최근 데이터 가져 오는 구문
호레
호레
창업 / IT / 육아 / 일상 / 여행
    반응형
  • 호레
    Unique Life
    호레
  • 전체
    오늘
    어제
    • 분류 전체보기 N
      • 법률
        • 기본
        • 개인정보보호법
        • 정보통신망법
        • 전자금융거래법
        • 전자금융감독규정
        • 신용정보법
        • 온라인투자연계금융업법
      • 창업
        • 외식업 관련
        • 임대업 관련
        • 유통업 관련
        • 세무 관련
        • 마케팅 관련
        • 기타 지식
        • 트렌드
        • Youtube
      • IT기술 관련
        • 모바일
        • 윈도우
        • 리눅스
        • MAC OS
        • 네트워크
        • 빅데이터 관련
        • A.I 인공지능
        • 파이썬_루비 등 언어
        • 쿠버네티스
        • 기타 기술
      • 퍼블릭 클라우드 관련
        • Azure
        • GCP
        • AWS
      • 정보보안 관련
        • QRadar
        • Splunk
        • System
        • Web
      • 기타
        • 세상 모든 정보
        • 서적
      • 게임 관련
        • 유니티
      • 부동산
      • 맛집 찾기
        • 강남역
        • 양재역
        • 판교역
        • ★★★★★
        • ★★★★
        • ★★★
        • ★★
        • ★
      • 결혼_육아 생활
        • 리얼후기
        • 일상
        • 육아
        • 사랑
        • Food
      • 영어 N
        • 스피킹
        • 문법
        • 팝송
        • 영화
      • K-컨텐츠
        • 드라마
        • 영화
        • 예능
      • 독서
      • 프로젝트 관련 조사
        • 시스템 구축
        • 로그 관련
        • 웹
        • APT
        • 모의 해킹
        • DB
        • 허니팟
        • 수리카타
        • 알고리즘
        • FDS
      • 기업별 구내 식당 평가
        • 한국관광공사
        • KT telecop
        • KT M&S
        • KT powertel
        • KT cs 연수원
        • 진에어
      • 대학 생활
        • 위드윈연구소
        • 진로 고민
        • 채용정보
        • 자동차
        • 주식
        • 악성코드
        • 게임 보안
      • 쉐어하우스
  • 블로그 메뉴

    • 홈
    • 게임 관련
    • IT 기술 관련
    • 태그
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    수제버거맛집
    유니티
    보안가이드
    런치
    마케팅
    맛집
    무역전쟁
    대통령
    돈까스
    수제버거
    점심
    이재곧죽습니다
    수제버거존맛
    상호관세
    판교역
    복리후생
    쥬쥬랜드
    AWS
    판교
    판교맛집
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.0
호레
[MySQL] DB 테이블 연산자 - JOIN 연산자 (두 개 이상 테이블 간의 비교검색)
상단으로

티스토리툴바