SQL/기본 지식

[엑셀보다 쉽고 빠른 SQL] - 4주차 (서브쿼리, JOIN, UNION)

뜌비뜌바밥 2024. 8. 7. 22:04
서브 쿼리

 

1. 서브쿼리 : 조건이 매우 복잡하고 전처리해야 할 것이 많은 경우 서브쿼리를 사용하여 간단하게 정리 가능

  • 여러 번의 연산을 수행해야 할 때
  • 조건문에 연산 결과를 사용해야 할 때
  • 조건에 쿼리 결과를 사용하고 싶을 때
#서브쿼리문 예시 - ()안에 넣어줌
SELECT 변수명
FROM 
(
SELECT 변수명
FROM 테이블명
) A

 

  ✅ SELECT, FROM, WHERE 절에서 모두 사용 가능

  • SELECT : 하나의 열로 사용됨, 많이 사용되지는 않음
SELECT 변수명, (SELECT 변수명, FROM 테이블명....)
FROM 테이블명
  • FROM : 하나의 테이블로 사용됨. 테이블로 사용되므로 테이블 별명을 꼭 써주어야 함
SELECT 변수명
FROM 
(SELECT 변수명
FROM 테이블명
) AS "A"
  • WHERE : 가장 대표적으로 사용됨. 서브쿼리에서 조건을 걸어 사용하고 싶을 때 사용
SELECT 변수명
FROM 테이블명
WHERE 변수명 IN (SELECT 변수명 FROM 테이블명 .....)

 

테이블 합치기 - JOIN, UNION

 

[JOIN]

  • 테이블을 합칠 때 사용
  • 쉽게 생각하면 변수 추가라고 볼 수 있음
  • 변수 추가를 위해서는 테이블 내에 공통이 되는 변수가 필수

1. INNER JOIN : 공통 컬럼(키 값)을 기준으로 두 개의 테이블에 값이 모두 있는 경우만 조회됨

SELECT 컬럼명
FROM 테이블명1 INNER JOIN 테이블명2 ON 테이블명1.키값=테이블명2.키값

 

2. LEFT JOIN: 공통 컬럼(키 값)을 기준으로 2번째로 기록된 테이블에 값이 없더라도 모두 조회됨

SELECT 컬럼명
FROM 테이블명1 LEFT JOIN 테이블명2 ON 테이블명1.키값=테이블명2.키값

 

3. RIGHT JOIN : 잘 쓰이지는 않으나, 공통 컬럼(키 값)을 기준으로 1번째로 기록된 테이블에 값이 없더라도 모두 조회됨

SELECT 컬럼명
FROM 테이블명1 RIGHT JOIN 테이블명2 ON 테이블명1.키값=테이블명2.키값

 

4. FULL OUTER JOIN : 공통 컬럼(키 값)을 기준으로 모든 테이블의 값을 조회함

LEFT JOIN한 테이블과 RIGHT JOIN한 테이블을 UNION 함수로 엮어주면 됨

SELECT 컬럼명
FROM 테이블명1 LEFT JOIN 테이블명 2 ON 테이블명1.키값 = 테이블명2.키값
UNION
SELECT 컬럼명
FROM 테이블명1 RIGHT JOIN 테이블명 2 ON 테이블명1.키값 = 테이블명2.키값

 

[UNION]

  • 행(개별 데이터)을 추가할 때 사용하는 변수
  • 이때, 합치려는 테이블의 변수 구조(순서 및 형식) 및 갯수가 모두 동일 해야함

1. UNION ALL : 중복을 제거하지 않고 행 추가

SELECT 변수명
FROM 테이블명 1

UNION ALL

SELECT 변수명
FROM 테이블명 2

 

2. UNION : 중복을 제거하고 행 추가

SELECT 변수명
FROM 테이블명 1

UNION

SELECT 변수명
FROM 테이블명 2