RadarURL

조회 수 8412 추천 수 0 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

가 크게 작게 위로 아래로 댓글로 가기 인쇄
?

단축키

Prev이전 문서

Next다음 문서

가 크게 작게 위로 아래로 댓글로 가기 인쇄

Introduction

12장에서 내부 조인만 다루었다. 13장에서 자체 조인(Self JOIN), 자연 조인(Natural JOIN), 외부 조인(Outer JOIN) 을 다룬다. 여러 조인을 다루는 이유는 서로 다른 테이블을 조합하여, 결과를 찾기 위해서다. 이렇게 여러 테이블을 다루다 보면, 이름을 쓰는게 헷갈리거나, 어렵거나, 귀찮을 수 있는데, 이럴때 별칭을 사용 하면 된다.

Content

1. 왜 별명(alias)을 사용하고, 어떻게 별명(alias)을 사용 하는가?

별명은 테이블 이름이 길거나, 이름 이해가 어렵거나, 특수문자를 사용 할 수 없는 환경에서 보다 쉽게 사용하기 위해서 사용 한다. 별명은 계산 필드, 칼럼(열), 테이블 이름에 붙일 수 있다.

사용 방법은 바꾸고자 하는 이름 뒤에 AS 를 붙이고, 별명을 기입하면 된다.(오라클에선 AS 없이 그냥 한칸 띄우고 별명을 지어 주면 된다.) 즉, 다음 예와 같다.

1
2
3
4
5
6
SELECT
    vend_id AS vi,
    vend_name AS vn,   
    vend_address AS va
FROM
    Vendors AS ven


관련 링크

  1. http://www.w3schools.com/SQl/sql_alias.asp
  2. http://sql.1keydata.com/kr/sql-alias.php

별명이 끝났으니, 이제 각각의 조인들에 대해서 알아 보자.

2. 자체 조인 - Self JOIN

2-1 무엇을 "자체 조인 - Self JOIN"이라고 하는가?

테이블 A 가 있다고 치면, 테이블 A가 테이블 A를 참조 하는, 즉, 자기 자신을 참조 하는 조인을 Self JOIN 라고 한다. 보통 테이블에 한 컴럼이 자신에게 있는 다른 레코드를 참조할 경우 쓰인다.

2-2 어떻게 "자체 조인 - Self JOIN"을 사용 하는가?

1
2
3
4
5
6
7
SELECT
    c1.cust_id, c1.cust_name, c1.cust_contact
FROM
    Customers AS c1, Customers AS c2
WHERE
    c1.cust_name = c2.cust_name
    AND c2.cust_contact = 'Jim Jones';


해석

출력


 

본능적으로 알 수 있으니, 별도의 설명이 필요 없다.

관련 링크

  1. http://radiocom.kunsan.ac.kr/lecture/oracle/statement_join/self_join.html
  2. http://www.sqltutorial.org/sqlselfjoin.aspx
  3. http://www.koug.net/xe/?document_srl=3282
  4. http://blog.naver.com/mavis5/10078360034
  5. http://kbckbc.com/tatter/kbckbc/entry/ProgOracle24

3. 자연 조인 - Natural JOIN

3-1. 무엇을 "자연 조인 - Natural JOIN" 이라고 하는가?

테이블 조인 유형 중 한가지 이다. 테이블 간 중복된 열이 있다면, 한개만 표시하는 JOIN 을 뜻한다. 그렇다고 Natural JOIN 이 스스로 걸러낸다는 것을 의미하지는 않는다. 이것은 질의를 만드는 사람의 손으로 걸러내야 한다는 의미이다. (실제로 PostgreSQL 에서 해 보니, 중복된 열이라 할지라도, 지정해 주면 출력이 되더라. 결국 사람의 손을 거쳐야 하는 것.)

곰곰히 생각해 보면, "자연 조인 - Natural JOIN" 을 따로 구분 짓지는 않을 것 같다. 왜냐하면, 인간이 가진 손으로 기입하는 것이기 때문이다. 이 의미는 "내부 조인 - INNER JOIN" 에 중복된 열을 제거 한 것뿐 이다. "자연 조인 - Natural JOIN"을 구분 한다 해도, 얻게 되는 이점이 무엇인가? 전혀 없다. 나는 이렇게 본다.

3-2. 어떻게 "자연 조인 - Natural JOIN" 을 사용 하는가?

1
2
3
4
5
6
7
8
9
SELECT   
    C.*, O.order_num, O.order_date, OI.prod_id,
    OI.quantity, OI.item_price
FROM
    Customers AS C, Orders AS O, OrderItems AS OI
WHERE
    C.cust_id = O.cust_id
    AND OI.order_num = O.order_num
    AND prod_id = 'RGAN01';


 

해석

출력


 

관련 링크

  1. http://jongrak.textcube.com/70


 

4. 외부 조인 - OUTER JOIN

4-1. 무엇을 "외부 조인 - OUTER JOIN" 이라고 하는가?

여러 JOIN 중 한 조인 형태이며, 크게 내부 조인과 외부 조인으로 나뉜다. 내부 조인은 엮을 대상이 있을 때만, 엮여 지지만, 외부 조인은 엮일 대상이 없다고 해도 엮인다. 이것이 차이다. 이러한 차이점 때문에 외부 조인은 기준이 될 테이블을 정해 주어야 한다. 기준이 된 테이블을 정해 준다는 것은 엮이는게 없더라도, 기본적으로 보여질 테이블을 정해 준다는 것을 의미한다.

그러므로 왼쪽을 기준으로 정한 외부 조인을 LEFT OUTER JOIN 이라고 하며, 오른쪽을 기준으로 정한 외부 조인을 RIGHT OUTER JOIN 이라고 한다. 이때 왼쪽과 오른쪽을 결정하는 기준은 JOIN 절 이다. JOIN 을 기준으로 왼쪽 과 오른쪽으로 나뉜다.

이렇게 왼쪽과 오른쪽을 나눈것 외에 둘 다 포함하는 조인이 있는데, 이를 FULL OUTER JOIN 이라고 한다. 이는 엮일 데이터가 있건 없건 모든 테이블을 보겠다는 의미이다. FULL JOIN 은 각 DBMS 마다 지원 여부를 확인해 봐야 한다. (PostgreSQL 은 된다.)

4-2. 어떻게 "외부 조인 - OUTER JOIN" 을 사용 하는가?

모든 예를 다 찍기 어려우므로 사진과 링크로 대체 한다.

LEFT OUTER JOIN 해석

LEFT OUTER JOIN 출력


 

RIGHT OUTER JOIN 해석

RIGHT OUTER JOIN 출력


 

FULL OUTER JOIN 해석

FULL OUTER JOIN 출력


 

관련링크

  1. http://zend1003.springnote.com/pages/946880
  2. http://infogoal.com/sql/sql-outer-join.htm
  3. http://databaser.net/moniwiki/wiki.php/OuterJoin
  4. http://www.oracleclub.com/lecture/1021
  5. http://bearcho.tistory.com/38
  6. http://bearcho.tistory.com/40

조인을 할 때 주의해야 할 사항

  1. 엮일 조건(WHERE a = b)(ON a = b)을 결정하지 않으면, 곱집합이 반한 된다.
  2. 여러 조인을 한 SQL 절에 사용 할 순 있으나, 복잡하므로, 충분히 테스트 하고 적용 시키도록 해야 한다.( .. 복잡한건 어딜 가나 문제다.)

Digression

조인은 내부 조인과 외부 조인만 구분 지으면 되지, 내부 조인엔 무엇이 있고 외부조인엔 무엇 있다고 상세히 구분 할 필요가 없다고 생각한다. 그러므로 내부 조인과 외부 조인만 설명하면 더 쉽게 접할 수 있을 것 같다. 그렇다고 이 의미가 책에서 내용 자체를 빼라는 것을 의미하지 않는다. 설명을 할 때, "이런 것도 있더라." 쯤으로 여기고 넘어가는게 좋다는 의미이다.

 

출처 : http://ikpil.com/1103

?

공부 게시판

공부에 도움되는 글을 올려주세요.

  1. [공지] 공부 게시판 입니다.

    Date2003.08.18 By처누 Views2016908
    read more
  2. 유심&통장 [카,톡] sim256 (24시문의) 대포유심 대포통장판매 선불유심팝니다 대포유심팝니다

    Date2026.10.06 Category윈도우즈 By놀라운운석99 Views1
    Read More
  3. 대전누수, 근본 원인 해결의 시작

    Date2026.10.06 Category사무 소프트웨어 By적막한체이서42 Views1
    Read More
  4. 강남건전지❤️OlO-8655-OO53❤️친절문의환영 #강남건전지 #강남유니콘 #선릉유니콘 #강남건전지위치 #선릉역건전지#대치동유니콘 #강남바커스 #선릉바커스 #선릉역바커스 #강남룸클럽 #선릉룸클럽 #강남베터리 #강남바데리

    Date2026.10.05 Category데이터베이스 By괴랄한재규어89 Views1
    Read More
  5. 용인두피문신 고민? 만족 후기 보려면

    Date2026.10.05 Category사무 소프트웨어 By날카로운꿩11 Views12
    Read More
  6. 웨딩누브라, 완벽한 드레스 핏을 위한 선택

    Date2026.10.05 Category윈도우즈 By날카로운감시자22 Views5
    Read More
  7. 인천맛집 순위

    Date2026.10.05 Category가상화 By차가운파편97 Views2
    Read More
  8. 손목터널증후군 치료, 현명한 선택 기준은?

    Date2026.10.05 Category웹서버,WAS By괴상한두루미52 Views1
    Read More
  9. 최근 테헤란로 벤처 밸리의 핵심 리더들 사이에서 ‘클래스가 다른 정통 수질과 프라이빗 무드’로 소문 자자한 '선릉 룸싸롱' 기습 방문, 인공미를 거부하는 무결점 뉴페이스들과 심장을 마비시킨 사심 플러팅에 제대로 저격당하고 온 솔직 후기

    Date2026.10.05 Category가상화 By희미한홍학99 Views4
    Read More
  10. 카­톡 gusim8003 급전/내구제 (24시문의) 선불폰 소액결제 일수 급전대출

    Date2026.10.05 Category웹서버,WAS By황금빛섬광82 Views2
    Read More
  11. 흥신소 선택 가이드

    Date2026.10.05 Category데이터베이스 By흔들리는골렘32 Views2
    Read More
  12. 양산싱크대막힘 완벽 해결 뚫자하수구

    Date2026.10.05 Category윈도우즈 By몽환적인태양핵44 Views1
    Read More
  13. 양산싱크대막힘 신속 해결의 모든 것

    Date2026.10.05 Category가상화 By조용한치타58 Views4
    Read More
  14. 카카오*톡 gusim8003 내구제대출/상조내구제 [24시문의] 선불유심 대출 폰내구제 가개통

    Date2026.10.05 Category유닉스/리눅스 By하얀라마72 Views9
    Read More
  15. 종로구가라오케 010 2817 0845 종로구 가라오케 예약 및 문의

    Date2026.10.04 Category윈도우즈 By흐릿한분석가84 Views10
    Read More
  16. 성공적인 중고화물차 선택 가이드

    Date2026.10.04 Category가상화 By붉은불꽃77 Views7
    Read More
  17. 센텀르엘, 하이엔드 라이프의 새로운 기준

    Date2026.10.04 Category데이터베이스 By검은파편81 Views7
    Read More
  18. 양산싱크대막힘 완벽 해결 뚫자하수구

    Date2026.10.04 Category가상화 By매혹적인곰18 Views7
    Read More
  19. 동탄 미시보다 자극적 첫사랑보다 그리운 마블 노래클럽 010++8293++0291

    Date2026.10.03 Category사무 소프트웨어 By광휘의퀘이사47 Views7
    Read More
  20. 탄현동노래방 탄현동에서 찾는 노래방 010 2817 0845

    Date2026.10.03 Category웹서버,WAS By울리는고래상어65 Views16
    Read More
  21. [Rocky Linux 9] /home 용량 줄이고 /root 용량 늘리기

    Date2026.04.03 Category유닉스/리눅스 ByYooN Views3812
    Read More
Board Pagination Prev 1 2 3 4 5 6 7 8 9 10 ... 36 Next
/ 36


즐겨찾기 (가족)

JAESOO's HOMEPAGE


장여은 홈페이지


장여희 홈페이지


장여원 홈페이지


즐겨찾기 (업무)

알리카페 홀릭

숭실대 컴퓨터 통신연구실 (서창진)

말레이시아 KL Sentral 한국인 GuestHouse


즐겨찾기 (취미)

어드민아이디

유에코 사랑회

아스가르드 좋은사람/나쁜사람

JServer.kr

제이서버 메타블로그

재수 티스토리


즐겨찾기 (강의, 커뮤니티)

재수 강의 홈페이지


한소리


VTMODE.COM


숭실대 인공지능학과


숭실대 통신연구실


베너