SQLD

[2과목] 2-10. 집합 연산자

yeonny_do 2024. 3. 6. 20:23

 집합 연산자

  • select문 결과를 하나의 집합으로 간주, 그 집합에 대한 합집합, 교집합, 차집합 연산
  • select문과 select문 사이에 집합 연산자 정의 
  • 두 집합의 컬럼이 동일하게 구성되어야 함(각 컬럼의 데이터 타입과 순서 일치 필요)
  • 전체 집합의 데이터타입과 컬럼명은 첫번째 집합에 의해 결정됨

 

 합집합

  • 두 집합의 총 합(전체 출력)
  • UNION과 UNION ALL
  1. UNION
    • 중복된 데이터는 한 번만 출력
    • 중복된 데이터를 제거하기 위해 내부적으로 정렬 수행
    • 중복된 데이터가 없을 경우는 UNION 사용 대신 UNION ALL사용(불필요한 정렬 발생할 수 있으므로)
  2. UNION ALL
    • 중복된 데이터도 전체 출력

 

 

 교집합

  • 두 집합 사이에 INTERSECT
  • 두 집합의 교집합(공통으로 있는 행) 출력

 

 

 차집합

  • 두 집합 사이에 MINUS 전달
  • 두 집합의 차집합 (한 쪽 집합에만 존재하는 행) 출력
  • A-B와 B-A는 다르므로 집합의 순서 주의!

 

 

집합 연산자 사용시 주의 사항

  1. 두 집합의 컬럼 수 일치
  2. 두 집합의 컬럼 순서 일치
  3. 두 집합의 각 컬럼의 데이터 타입 일치
  4. 각 컬럼의 사이즈는 달라도 됨