블로그 이미지
공부할 때 정리 장소로 쓰거나 웹서핑할때 메모 할 때 쓰거나, 개인적인 생각을 기록하기 위해서 사용 되는 블로그 입니다.
최익필

Recent Comment

  • 1,044,231total
  • 318today
  • 1,003yesterday
DNS Powered by DNSEver.com

Introduction

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

Content

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

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

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


관련 링크

  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. 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. 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

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

저작자 표시
posted by 농사를 짓는 게임 프로그래머 최익필

Trackback http://ikpil.com/trackback/1103 관련글 쓰기

  1. Ray Harding mediation  삭제

    2014/09/09 15:15 | Tracked from Ray Harding mediation

    13장, 고급 조인 만들기 : SELF JOIN, NATURAL JOIN, OUTER JOIN :: 최익필의 이름없는 블로그

  2. Ray Harding mediation  삭제

    2014/09/09 17:21 | Tracked from Ray Harding mediation

    13장, 고급 조인 만들기 : SELF JOIN, NATURAL JOIN, OUTER JOIN :: 최익필의 이름없는 블로그

  3. Ray Harding mediation  삭제

    2014/09/09 17:54 | Tracked from Ray Harding mediation

    13장, 고급 조인 만들기 : SELF JOIN, NATURAL JOIN, OUTER JOIN :: 최익필의 이름없는 블로그

  4. Ray Harding mediation  삭제

    2014/09/09 19:07 | Tracked from Ray Harding mediation

    13장, 고급 조인 만들기 : SELF JOIN, NATURAL JOIN, OUTER JOIN :: 최익필의 이름없는 블로그

  5. Ray Harding mediation  삭제

    2014/09/09 21:30 | Tracked from Ray Harding mediation

    13장, 고급 조인 만들기 : SELF JOIN, NATURAL JOIN, OUTER JOIN :: 최익필의 이름없는 블로그

  6. Ray Harding mediation  삭제

    2014/09/09 23:35 | Tracked from Ray Harding mediation

    13장, 고급 조인 만들기 : SELF JOIN, NATURAL JOIN, OUTER JOIN :: 최익필의 이름없는 블로그

  7. Ray Harding mediation  삭제

    2014/09/10 00:38 | Tracked from Ray Harding mediation

    13장, 고급 조인 만들기 : SELF JOIN, NATURAL JOIN, OUTER JOIN :: 최익필의 이름없는 블로그

  8. Ray Harding mediation  삭제

    2014/09/10 01:39 | Tracked from Ray Harding mediation

    13장, 고급 조인 만들기 : SELF JOIN, NATURAL JOIN, OUTER JOIN :: 최익필의 이름없는 블로그

  9. Ray Harding mediation  삭제

    2014/09/10 02:47 | Tracked from Ray Harding mediation

    13장, 고급 조인 만들기 : SELF JOIN, NATURAL JOIN, OUTER JOIN :: 최익필의 이름없는 블로그

  10. Ray Harding mediation  삭제

    2014/09/10 04:40 | Tracked from Ray Harding mediation

    13장, 고급 조인 만들기 : SELF JOIN, NATURAL JOIN, OUTER JOIN :: 최익필의 이름없는 블로그

  11. free google adwords  삭제

    2014/09/10 13:58 | Tracked from free google adwords

    13장, 고급 조인 만들기 : SELF JOIN, NATURAL JOIN, OUTER JOIN :: 최익필의 이름없는 블로그

  12. nike free run 5.0  삭제

    2014/09/12 21:41 | Tracked from nike free run 5.0

    13장, 고급 조인 만들기 : SELF JOIN, NATURAL JOIN, OUTER JOIN :: 최익필의 이름없는 블로그

  13. buy viagra  삭제

    2014/09/13 00:13 | Tracked from buy viagra

    13장, 고급 조인 만들기 : SELF JOIN, NATURAL JOIN, OUTER JOIN :: 최익필의 이름없는 블로그

  14. 2014 Nike Free Run  삭제

    2014/09/14 21:49 | Tracked from 2014 Nike Free Run

    13장, 고급 조인 만들기 : SELF JOIN, NATURAL JOIN, OUTER JOIN :: 최익필의 이름없는 블로그

  15. Stock Trading  삭제

    2014/09/15 17:16 | Tracked from Stock Trading

    13장, 고급 조인 만들기 : SELF JOIN, NATURAL JOIN, OUTER JOIN :: 최익필의 이름없는 블로그

  16. discount nike air max  삭제

    2014/09/16 14:59 | Tracked from discount nike air max

    13장, 고급 조인 만들기 : SELF JOIN, NATURAL JOIN, OUTER JOIN :: 최익필의 이름없는 블로그

  17. cheap air max 1 leopard print  삭제

    2014/09/20 11:40 | Tracked from cheap air max 1 leopard print

    13장, 고급 조인 만들기 : SELF JOIN, NATURAL JOIN, OUTER JOIN :: 최익필의 이름없는 블로그

  18. redevelopment  삭제

    2014/09/20 18:19 | Tracked from redevelopment

    13장, 고급 조인 만들기 : SELF JOIN, NATURAL JOIN, OUTER JOIN :: 최익필의 이름없는 블로그

  19. bp claims  삭제

    2014/09/22 01:55 | Tracked from bp claims

    13장, 고급 조인 만들기 : SELF JOIN, NATURAL JOIN, OUTER JOIN :: 최익필의 이름없는 블로그

  20. Viagra  삭제

    2014/09/23 01:02 | Tracked from Viagra

    13장, 고급 조인 만들기 : SELF JOIN, NATURAL JOIN, OUTER JOIN :: 최익필의 이름없는 블로그

  21. joey atlas cellulite reduction  삭제

    2014/09/26 16:28 | Tracked from joey atlas cellulite reduction

    13장, 고급 조인 만들기 : SELF JOIN, NATURAL JOIN, OUTER JOIN :: 최익필의 이름없는 블로그

  22. cheap 2014 nike air max  삭제

    2014/09/26 20:28 | Tracked from cheap 2014 nike air max

    13장, 고급 조인 만들기 : SELF JOIN, NATURAL JOIN, OUTER JOIN :: 최익필의 이름없는 블로그

  23. cheap nike air max  삭제

    2014/09/27 15:34 | Tracked from cheap nike air max

    13장, 고급 조인 만들기 : SELF JOIN, NATURAL JOIN, OUTER JOIN :: 최익필의 이름없는 블로그

  24. nike canada  삭제

    2014/09/27 20:15 | Tracked from nike canada

    13장, 고급 조인 만들기 : SELF JOIN, NATURAL JOIN, OUTER JOIN :: 최익필의 이름없는 블로그

  25. lipitor claims  삭제

    2014/10/01 10:26 | Tracked from lipitor claims

    13장, 고급 조인 만들기 : SELF JOIN, NATURAL JOIN, OUTER JOIN :: 최익필의 이름없는 블로그

  26. aboy tidung (kepulauan seribu)  삭제

    2014/10/01 13:36 | Tracked from aboy tidung (kepulauan seribu)

    13장, 고급 조인 만들기 : SELF JOIN, NATURAL JOIN, OUTER JOIN :: 최익필의 이름없는 블로그

  27. call of duty advanced warfare free mods  삭제

    2014/10/03 02:46 | Tracked from call of duty advanced warfare free mods

    13장, 고급 조인 만들기 : SELF JOIN, NATURAL JOIN, OUTER JOIN :: 최익필의 이름없는 블로그

  28. age of warring empire cheat  삭제

    2014/10/03 08:03 | Tracked from age of warring empire cheat

    13장, 고급 조인 만들기 : SELF JOIN, NATURAL JOIN, OUTER JOIN :: 최익필의 이름없는 블로그

  29. cheap lv  삭제

    2014/10/03 08:31 | Tracked from cheap lv

    13장, 고급 조인 만들기 : SELF JOIN, NATURAL JOIN, OUTER JOIN :: 최익필의 이름없는 블로그

  30. battle run hack download  삭제

    2014/10/03 20:26 | Tracked from battle run hack download

    13장, 고급 조인 만들기 : SELF JOIN, NATURAL JOIN, OUTER JOIN :: 최익필의 이름없는 블로그

  31. タイヤチェーン ka56171  삭제

    2014/10/03 22:24 | Tracked from タイヤチェーン ka56171

    13장, 고급 조인 만들기 : SELF JOIN, NATURAL JOIN, OUTER JOIN :: 최익필의 이름없는 블로그

  32. family guy the quest for stuff cheats  삭제

    2014/10/06 09:16 | Tracked from family guy the quest for stuff cheats

    13장, 고급 조인 만들기 : SELF JOIN, NATURAL JOIN, OUTER JOIN :: 최익필의 이름없는 블로그

  33. prediksi bola akurat terbaik  삭제

    2014/10/06 22:39 | Tracked from prediksi bola akurat terbaik

    13장, 고급 조인 만들기 : SELF JOIN, NATURAL JOIN, OUTER JOIN :: 최익필의 이름없는 블로그

  34. candy crush saga cheats  삭제

    2014/10/07 07:07 | Tracked from candy crush saga cheats

    13장, 고급 조인 만들기 : SELF JOIN, NATURAL JOIN, OUTER JOIN :: 최익필의 이름없는 블로그

  35. http://top-vape.com/index.php?a=stats&u=mckenziknotts  삭제

    2014/10/07 08:30 | Tracked from http://top-vape.com/index.php?a=stats&u=mckenziknotts

    13장, 고급 조인 만들기 : SELF JOIN, NATURAL JOIN, OUTER JOIN :: 최익필의 이름없는 블로그

  36. candy crush saga hack  삭제

    2014/10/07 13:22 | Tracked from candy crush saga hack

    13장, 고급 조인 만들기 : SELF JOIN, NATURAL JOIN, OUTER JOIN :: 최익필의 이름없는 블로그

  37. boom beach hack  삭제

    2014/10/07 20:04 | Tracked from boom beach hack

    13장, 고급 조인 만들기 : SELF JOIN, NATURAL JOIN, OUTER JOIN :: 최익필의 이름없는 블로그

  38. Paysafecard generator  삭제

    2014/10/07 20:42 | Tracked from Paysafecard generator

    13장, 고급 조인 만들기 : SELF JOIN, NATURAL JOIN, OUTER JOIN :: 최익필의 이름없는 블로그

  39. Cheap nike air max  삭제

    2014/10/09 08:41 | Tracked from Cheap nike air max

    13장, 고급 조인 만들기 : SELF JOIN, NATURAL JOIN, OUTER JOIN :: 최익필의 이름없는 블로그

  40. http://mejavip.Info/  삭제

    2014/10/09 14:32 | Tracked from http://mejavip.Info/

    13장, 고급 조인 만들기 : SELF JOIN, NATURAL JOIN, OUTER JOIN :: 최익필의 이름없는 블로그

  41. gppbooks-us.com  삭제

    2014/10/11 02:57 | Tracked from gppbooks-us.com

    13장, 고급 조인 만들기 : SELF JOIN, NATURAL JOIN, OUTER JOIN :: 최익필의 이름없는 블로그

  42. nike air max deutschland  삭제

    2014/10/12 07:33 | Tracked from nike air max deutschland

    13장, 고급 조인 만들기 : SELF JOIN, NATURAL JOIN, OUTER JOIN :: 최익필의 이름없는 블로그

  43. ตั้งชื่อ  삭제

    2014/10/15 06:15 | Tracked from ตั้งชื่อ

    13장, 고급 조인 만들기 : SELF JOIN, NATURAL JOIN, OUTER JOIN :: 최익필의 이름없는 블로그

  44. pharmaceutical claims  삭제

    2014/10/15 07:13 | Tracked from pharmaceutical claims

    13장, 고급 조인 만들기 : SELF JOIN, NATURAL JOIN, OUTER JOIN :: 최익필의 이름없는 블로그

  45. judi online  삭제

    2014/10/15 11:07 | Tracked from judi online

    13장, 고급 조인 만들기 : SELF JOIN, NATURAL JOIN, OUTER JOIN :: 최익필의 이름없는 블로그

  46. pasartoto  삭제

    2014/10/15 20:59 | Tracked from pasartoto

    13장, 고급 조인 만들기 : SELF JOIN, NATURAL JOIN, OUTER JOIN :: 최익필의 이름없는 블로그

  47. youtube marketing statistics  삭제

    2014/10/17 06:40 | Tracked from youtube marketing statistics

    13장, 고급 조인 만들기 : SELF JOIN, NATURAL JOIN, OUTER JOIN :: 최익필의 이름없는 블로그

  48. agen poker  삭제

    2014/10/17 11:59 | Tracked from agen poker

    13장, 고급 조인 만들기 : SELF JOIN, NATURAL JOIN, OUTER JOIN :: 최익필의 이름없는 블로그

  49. pharmaceutical claims  삭제

    2014/10/18 10:06 | Tracked from pharmaceutical claims

    13장, 고급 조인 만들기 : SELF JOIN, NATURAL JOIN, OUTER JOIN :: 최익필의 이름없는 블로그

  50. my website  삭제

    2014/10/20 01:57 | Tracked from my website

    13장, 고급 조인 만들기 : SELF JOIN, NATURAL JOIN, OUTER JOIN :: 최익필의 이름없는 블로그

  51. giochi mario bros  삭제

    2014/10/21 00:52 | Tracked from giochi mario bros

    13장, 고급 조인 만들기 : SELF JOIN, NATURAL JOIN, OUTER JOIN :: 최익필의 이름없는 블로그

  52. crack for photoshop cc  삭제

    2014/10/21 01:04 | Tracked from crack for photoshop cc

    13장, 고급 조인 만들기 : SELF JOIN, NATURAL JOIN, OUTER JOIN :: 최익필의 이름없는 블로그

  53. %anchor_text%  삭제

    2014/10/21 01:32 | Tracked from %anchor_text%

    13장, 고급 조인 만들기 : SELF JOIN, NATURAL JOIN, OUTER JOIN :: 최익필의 이름없는 블로그

  54. ragazze cam  삭제

    2014/10/21 01:34 | Tracked from ragazze cam

    13장, 고급 조인 만들기 : SELF JOIN, NATURAL JOIN, OUTER JOIN :: 최익필의 이름없는 블로그

  55. basi karaoke gratis  삭제

    2014/10/21 05:29 | Tracked from basi karaoke gratis

    13장, 고급 조인 만들기 : SELF JOIN, NATURAL JOIN, OUTER JOIN :: 최익필의 이름없는 블로그

댓글을 달아 주세요

  1. jeon 2010/05/04 14:04  Addr  Edit/Del  Reply

    좋은 정보 감사합니다. 많은 도움이 되었습니다. 감사합니다.