서브 쿼리
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
'SQL > 기본 지식' 카테고리의 다른 글
[엑셀보다 쉽고 빠른 SQL] - 5주차 (PIVOT, WINDOW) (0) | 2024.08.08 |
---|---|
[엑셀보다 쉽고 빠른 SQL] - 3주차(Replace, Substr, Concat, IF, Case When, Cast) (0) | 2024.08.07 |
[엑셀보다 쉽고 빠른 SQL] - 2주차 (Sum, Avg, Count, Distinct, Min, Max, Group By, Order By) (0) | 2024.08.07 |
[엑셀보다 쉽고 빠른 SQL] - 1주차 (SELECT, FROM, AS, WHERE, 비교연산자, Between, In, Like, And, Or, Not) (0) | 2024.08.07 |
[MySQL] 중복 제거하기 - DISTINCT, GROUP BY (0) | 2024.07.22 |