Dorothy_YANG
With Dorothy
Dorothy_YANG
전체 방문자
오늘
어제
  • 분류 전체보기 (279)
    • Hi, I'm Dorothy 🕵️‍♂️ (21)
      • Slowly but Surely (18)
      • IT certifications (3)
    • 🤯TIL (80)
      • HTML & CSS (2)
      • Javascript & jQuery (13)
      • React (13)
      • C언어 (1)
      • JAVA (22)
      • Python (2)
      • Oracle SQL (10)
      • My SQL (5)
      • Spring (12)
    • 💻Programmers (17)
    • 🏫 Open API_JAVA (101)
    • 🌎 Project (10)
      • Shopping (10)
    • 💥 Error (24)
    • ⚙ Setting (23)

블로그 메뉴

  • 홈
  • 방명록

공지사항

인기 글

태그

  • 독학후기
  • 비쥬얼스튜디오코드
  • 노마드코더
  • sql기간
  • 파이썬온라인
  • SQLD합격
  • 오류해결
  • Database
  • SQL
  • Eclipse
  • 서버등록
  • 시작일종료일
  • spring
  • 코딩앙마
  • oracle
  • 백준
  • java
  • AllArgsConstructor
  • 기간쿼리
  • 콜라보레이토리
  • 이것이자바다
  • Javascript
  • googlecolaboratory
  • 연습문제
  • 창초기화
  • CSS
  • 기간설정
  • colaboratory
  • HTML
  • SQLD합격후기

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
Dorothy_YANG

With Dorothy

🏫 Open API_JAVA

[61일차] 조인의 종류 / ANSI 내부 조인 / ANSI 외부 조인

2022. 10. 23. 12:41
728x90

20221020(목)

  • 목차 
    - 조인의 종류
    - ANSI 내부 조인
    - ANSI 외부 조인

< 조인이란? >

  • 관계형 데이터베이스에서 SQL을 이용해 ‘관계’를 맺는 방법
  • 원하는 정보를 테이블에서 추출하려면 대부분 한 개 이상의 테이블이나 뷰에서 데이터를 읽어 와야 함
  • 이때 테이블 간의 연결고리로 관계를 맺고 데이터를 추출
    ➡ 바로 ‘조인’을 통해 이를 구현할 수 있다.


< 조인의 종류 >

• 조인 연산자에 따른 구분 (2개) : 동등 조인, 안티 조인
• 조인 대상에 따른 구분 (1개) : 셀프 조인
• 조인 조건에 따른 구분 (4개) : 내부 조인, 외부 조인, 세미 조인, 카타시안 조인
• 기타 (1개) : ANSI 조인

 

일반적으로 내부 조인과 외부 조인만 구분할 수 있으면 충분하다.

 


< ANSI 내부 조인 > - 최근 구축되는 시스템 / 과거는 오라클 조인 사용

  • 기존 문법과 ANSI 조인의 차이점
    : 조인 조건이 WHERE절이 아닌 FROM 절에 들어 간다는 점
  • 이 절에서는 몇 가지 조인 방법에 대해 기존 문법과 ANSI 문법을 비교해 보자.

    (1) 기존 문법
    SELECT A.컬럼1, A.컬럼2, B.컬럼1, B.컬럼2 ...
      FROM 테이블 A, 테이블 B
     WHERE A.컬럼1 = B.컬럼1 → 조인 조건
    ...;

 

       (2) ANSI 문법 

    SELECT A.컬럼1, A.컬럼2, B.컬럼1, B.컬럼2 ...
      FROM 테이블 A
     INNER JOIN 테이블 B
        ON ( A.컬럼1 = B.컬럼1) → 조인 조건
    WHERE ...;

 

  • 외부조인 : 내부조인, 일치되지 않는 데이타를 포함.
  • INEER JOIN : 일치되는 데이터를 수평적 결합
  • 일반적으로 조인이라하면, 내부조인 or 동등조인

< ANSI 외부 조인 >


(1) 기존 문법

    SELECT A.컬럼1, A.컬럼2, B.컬럼1, B.컬럼2 ...
      FROM 테이블 A, 테이블 B
     WHERE A.컬럼1 = B.컬럼1(+)
    ...;
  • 기준 테이블과 대상 테이블(데이터가 없는 테이블)에서 대상 테이블쪽 조인 조건에 (+)를 붙인다.

(2) ANSI 문법

    SELECT A.컬럼1, A.컬럼2, B.컬럼1, B.컬럼2 ...
      FROM 테이블 A
      LEFT(RIGHT) [OUTER] JOIN 테이블 B
        ON ( A.컬럼1 = B.컬럼1)
    WHERE ...;
  • FROM 절에 명시된 테이블 순서에 입각해 먼저 명시된 테이블 기준으로 LEFT 혹은 RIGHT를 붙이는 점
  • 즉 LEFT JOIN 혹은 RIGHT JOIN이라고 명시해도 이는 외부 조인을 의미한다.

 

     ✨ ANSI 외부조인 특징

     (1) 조인 대상 테이블 중 데이터가 없는 테이블 조인 조건에 (+)를 붙인다
     (2) 외부 조인의 조인 조건이 여러 개일 때 모든 조건에 (+)를 붙인다
     (3) 한 번에 한 테이블에만 외부 조인을 할 수 있다.
          예를 들어, 조인 대상 테이블이 A, B, C 3개이고, A를 기준으로 B 테이블을 외부 조인으로 연결했다면,
          동시에 C를 기준으로 B 테이블에 외부 조인을 걸 수는 없다
     (4) (+)연산자가 붙은 조건과 OR를 같이 사용할 수 없다
     (5) (+)연산자가 붙은 조건에는 IN 연산자를 같이 사용할 수 없다.
          (단 IN절에 포함되는 값이 1개인 때는 사용 가능)

728x90
저작자표시 (새창열림)

'🏫 Open API_JAVA' 카테고리의 다른 글

[63일차] 계층형 쿼리 / 계층형 쿼리 응용 / WITH 절 / 분석함수 와 window 함수  (0) 2022.10.25
[62일차] 서브 쿼리  (0) 2022.10.24
[60일차] 변환 함수 / NULL 관련 함수 / 기타 함수 / GROUP BY 절과 HAVING 절 / ROLLUP 절과 CUBE 절 / 집합 연산자  (0) 2022.10.21
[59일차] SQL 문장 살펴보기 (UPDATE / MERGE / DELETE / COMMIT과 ROLLBACK, TRUNCATE / ROWNUM / 함수)  (0) 2022.10.21
[58일차] 테이블 변경 / 테이블 복사 / 뷰 / 인덱스 / 시노님 / 시퀀스 / 파티션 테이블 / SELECT문  (0) 2022.10.17
    '🏫 Open API_JAVA' 카테고리의 다른 글
    • [63일차] 계층형 쿼리 / 계층형 쿼리 응용 / WITH 절 / 분석함수 와 window 함수
    • [62일차] 서브 쿼리
    • [60일차] 변환 함수 / NULL 관련 함수 / 기타 함수 / GROUP BY 절과 HAVING 절 / ROLLUP 절과 CUBE 절 / 집합 연산자
    • [59일차] SQL 문장 살펴보기 (UPDATE / MERGE / DELETE / COMMIT과 ROLLBACK, TRUNCATE / ROWNUM / 함수)
    Dorothy_YANG
    Dorothy_YANG
    Slowly but Surely, 비전공 문과생의 개발공부

    티스토리툴바