1. UNION
여러 개의 SELECT 문의 결과를 하나의 테이블로 연결하여 보고 싶을 때 사용한다. UNION을 사용할 때는 두 SELECT문의 열과 개수, 순서, 형식이 모두 동일해야 한다. 중복을 제거하고 하나로 표기하고 싶다면 UNION만 사용하고 중복을 제거하지 않고 모두 표기하고 싶다면 UNION ALL로 표기한다.
# union/union all 기본구조
select name, goods_nm, pay_date # 컬럼 순서가 같고, 그 형식이 같아야 함
from 테이블명1
union (all) #수직결합 명시
select name, goods_nm, pay_date # 컬럼 순서가 같고, 그 형식이 같아야 함
from 테이블명 2 ;
2. DB 정규화
정규화는 데이터베이스의 데이터 정합성을 위해 테이블을 작은 단위로 분리하는 과정이다. 정규화를 할 경우 데이터 조회 성능은 조회 조건에 따라 향상되는 경우도 있고 저하되는 경우도 있지만 입력, 수정, 삭제 성능은 일반적으로 향상된다.
정규화를 하지 않을 경우 이상현상이 발생할 수 있지만 모든 테이블을 분리하면 비효율이 발생할 수 있으므로 정규화를 위해 일정한 규칙을 따라야 한다.
3. JOIN 함수
JOIN 함수는 여러 개의 SELECT문의 결과를 단일 결과 세트로 연결할 때 사용한다. 원하는 데이터를 추출하기 위해 두 개의 테이블을 결합하는 역할을 수행한다.
JOIN을 진행하기 위해서는 가장 먼저 공통 컬럼을 찾아야 한다. 이름이 같지 않아도 되며 두 테이블에 공통으로 존재하는 컬럼이 있는지 확인해야 한다.
후에 적절한 조인 방식을 선택해 두 테이블을 결합해 준다.
종류 | 설명 |
INNER JOIN | 두 테이블에서 일치하는 값을 가진 행을 출력 (교집합) |
LEFT JOIN | 왼쪽 테이블의 모든 행과 오른쪽 테이블의 일치하는 행을 반환하며 일치하는 항목이 없으면 오른쪽 테이블의 열에 대해 NULL 값이 출력 |
RIGHT JOIN | 오른쪽 테이블의 모든 행과 왼쪽 테이블의 일치하는 행을 반환하 일치하는 항목이 없으면 왼쪽 테이블의 열에 대해 NULL 값이 출력 |
FULL OUTER JOIN | 모든 데이터를 보고 싶을 때 사용 용량 이슈로 자주 사용하지 않으며 MySQL 환경에서는 제공하지 않아 LEFT JOIN 과 RIGHT 조인의 UNION으로 계산해야함 (합집합) |
'Today I Learned (TIL) > SQL' 카테고리의 다른 글
[TIL] SQL 챌린지 - 5회차 (0) | 2024.07.26 |
---|---|
[TIL] SQL 베이직 - 4회차 (0) | 2024.07.25 |
[TIL] SQL 챌린지 - 4회차 (0) | 2024.07.24 |
[TIL] SQL 챌린지 - 3회차 (0) | 2024.07.22 |
[TIL] SQL 챌린지 - 2회차 (0) | 2024.07.22 |