[데이터베이스] JOIN

2023. 7. 17. 14:50·CS 지식/[데이터베이스]

조인이란?

  • 두 개 이상의 테이블이나 데이터베이스를 연결하여 데이터를 검색하는 방법
  • 테이블을 연결하려면, 적어도 하나의 컬럼을 서로 공유하고 있어야하므로 이를 이용하여 데이터 검색에 활용함

Join 종류

  • INNER JOIN
  • LEFT OUTER JOIN
  • RIGHT OUTER JOIN
  • FULL OUTER JOIN
  • CROSS JOIN
  • SELF JOIN

1) INNER JOIN

  • 교집합
  • 기준 테이블과 조인 테이블의 중복된 값을 보여줌
SELECT
A.NAME, B.AGE
FROM EX_TABLE A
INNER JOIN JOIN_TABLE B ON A.NO_EMP = B.NO_EMP

2) LEFT OUTER JOIN

  • 기준 테이블 값과 조인 테이블과 중복된 값을 보여줌
  • 왼쪽 테이블 기준으로 JOIN을 한다고 생각하면 편함
SELECT
A.NAME, B.AGE
FROM EX_TABLE A
LEFT OUTER JOIN JOIN_TABLE B ON A.NO_EMP = B.NO_EMP

3) RIGHT OUTER JOIN

  • LEFT OUTER JOIN과는 반대로 오른쪽 테이블 기준으로 JOIN하는 것
SELECT
A.NAME, B.AGE
FROM EX_TABLE A
RIGHT OUTER JOIN JOIN_TABLE B ON A.NO_EMP = B.NO_EMP

4) FULL OUTER JOIN

  • 합집합
  • A와 B 테이블의 모든 데이터가 검색됨
SELECT
A.NAME, B.AGE
FROM EX_TABLE A
FULL OUTER JOIN JOIN_TABLE B ON A.NO_EMP = B.NO_EMP

5) CROSS JOIN

  • 모든 경우의 수를 전부 표현해주는 방식
  • A가 3개, B가 4개면 총 3*4 = 12개의 데이터가 검색됨
SELECT
A.NAME, B.AGE
FROM EX_TABLE A
CROSS JOIN JOIN_TABLE B

6) SELF JOIN

  • 자기 자신과 자기 자신을 조인하는 것
  • 하나의 테이블을 여러 번 복사해서 조인한다고 생각하면 편함
  • 자신이 갖고 있는 컬럼을 다양하게 변형시켜 활용할 때 자주 사용
저작자표시 비영리 변경금지 (새창열림)

'CS 지식 > [데이터베이스]' 카테고리의 다른 글

[데이터베이스] 인덱스(Index)  (0) 2023.07.18
[데이터베이스] 이상(Anomaly)  (0) 2023.07.18
[데이터베이스] SQL과 NOSQL의 차이  (0) 2023.07.18
[데이터베이스] SQL Injection  (0) 2023.07.18
[데이터베이스] Key  (0) 2023.07.17
'CS 지식/[데이터베이스]' 카테고리의 다른 글
  • [데이터베이스] 이상(Anomaly)
  • [데이터베이스] SQL과 NOSQL의 차이
  • [데이터베이스] SQL Injection
  • [데이터베이스] Key
woojin._.
woojin._.
여러가지 개발을 해보며 발생하는 이야기들에 대한 블로그입니다:)
  • woojin._.
    Jin's Dev Story
    woojin._.
  • 전체
    오늘
    어제
    • 분류 전체보기 (829)
      • Tools (25)
        • eGovFrame (3)
        • GeoServer (3)
        • QGIS (2)
        • LabelImg (2)
        • Git (6)
        • GitHub (1)
        • Eclipse (7)
        • Visual Studio (1)
      • Web & Android (121)
        • SpringBoot (37)
        • Three.js (2)
        • Spring Data JPA (9)
        • 스프링 부트 쇼핑몰 프로젝트 with JPA (25)
        • Thymeleaf (4)
        • Spring Security (15)
        • Flutter (29)
      • Programming Language (61)
        • JAVA (27)
        • JavaScript (14)
        • Dart (2)
        • Python (15)
        • PHP (3)
      • Database (43)
        • PostgreSQL (32)
        • MYSQL (7)
        • Oracle (3)
        • MSSQL (1)
      • SERVER (17)
        • TCP_IP (3)
        • 리눅스 (7)
        • AWS (7)
      • Coding Test (445)
        • 백준[JAVA] (108)
        • 프로그래머스[JAVA] (260)
        • 알고리즘 고득점 Kit[JAVA] (3)
        • SQL 고득점 Kit[ORACLE] (74)
      • CS 지식 (49)
        • [자료구조] (14)
        • [네트워크] (12)
        • [데이터베이스] (10)
        • [알고리즘] (9)
        • [운영체제] (4)
      • 기타 (6)
      • 자격증 & 공부 (62)
        • 정보처리기사 (2)
        • SQLD (6)
        • 네트워크관리사 2급 (5)
        • 리눅스마스터 1급 (44)
        • 리눅스마스터 2급 (1)
        • ISTQB (3)
        • 시스템보안 (1)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 인기 글

  • 태그

    자바
    프로그래머스
    spring
    CS
    Linux
    스프링 부트 쇼핑몰 프로젝트 with JPA
    리눅스
    리눅스마스터
    pcce 기출문제
    스프링부트
    Oracle
    python
    백준
    CS지식
    postgresql
    플러터
    baekjoon
    springboot
    데이터베이스
    스프링
    JPA
    시큐리티
    DB
    backjoon
    리눅스마스터 1급
    Flutter
    Java
    데이터
    Spring Security
    programmers
  • 최근 글

  • hELLO· Designed By정상우.v4.10.0
woojin._.
[데이터베이스] JOIN
상단으로

티스토리툴바