Today I Learned (TIL)/SQL

[TIL] SQL 베이직 - 3회차

신짜린 2024. 7. 25. 18:55

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