7강 복수 테이블 다루기(1)

이유진·2022년 2월 21일
0

7강 복수 테이블 다루기

31강 - 집합 연산

1. UNION(합집합)

  • SELECT FROM 테이블명1 UNION SELECT FROM 테이블명2 ;
  • 여러 개의 select 명령을 하나로 묶을 수 있다.(=합칠 수 있다.)

    • 단, 의 내용 또는 구성(열 개수, 자료형)이 같아야 한다.
  • 세미콜론(;)은 명령어 마지막에 한번!만 사용한다

  • select구 나열 순서는 합집합 결과에 영향을 주지 않는다.

    • 단,결괏값(요소들)의 나열 순서는 달라질 수 있다.
    • ex) sample71_a 요소 :1,2,3
      sample71_b 요소 : 2,10,11
    • sample71_a와 sample71_b의 합집합 경우:
      _a의 테이블 요소 -> _b의 테이블 요소 순으로 합집합 결과 출력 ==> 1,2,3,10,11
    • sample71_b와 sample71_a의 합집합 경우:
      _b의 테이블 요소 -> _a의 테이블 요소 순으로 합집한 결과 출력 ==> 2,10,11,1,3
  • 1-1) union과 order by 사용시

    • SELECT FROM 테이블명1 UNION SELECT FROM 테이블명2 order by;
    • 세미콜론과 동일하게,
      order by는 명령어 가장 마지막에 지정한다!
      (각각의 select 구의 정렬이 아니, union(합집합 )결과를 정렬하기 때문)
  • 1-2) union all

    • SELECT FROM 테이블명1 UNION ALL SELECT FROM 테이블명2;
    • 집합의 중복 제거하지 않고 모든 요소 반환하는 경우 사용
    • 중복값 없는 경우, 중복검사하지 않는 UNION ALL 사용시, 중복검사 하는 UNION 사용보다 성능이 좋다.

2. 교집합 / 차집합

  • MySQL에서 지원 안된다.

  • SQL의 교집합

    • 공통 부분
    • 두 개의 집합의 겹치는 부분
    • INTERSECT 사용
  • SQLD의 차집합

    • 집합에서 다른 쪽의 집합(또는 교집합 부분)을 제거하고 남은 부분
    • 교집합이 없을경우, 결과값 동일
    • EXCEPT 사용

    이미지 출처👆

profile
차근차근 배워나가는 주니어 개발자

0개의 댓글