[SQL 2-5강 (1)] INTERSECT, EXCEPT

2021. 5. 23.·🤓 기술 학습 & 공부 기록/컴퓨터 일반

[강의명]
패스트캠퍼스 SQL 100제 + 자격증 완성 온라인 완주반

[수강목록]
38. 집합 연산자와 서브커리 - 03. INTERSECT 연산
39. 집합 연산자와 서브커리 - 04. EXCEPT 연산

[강의내용]

 

38. 집합 연산자와 서브커리 - 03. INTERSECT 연산

 

INTERSECT 연산자는 2개 이상의 SELECT 문들의 결과 집합을 하나의 결과 집합으로 결합한다.

교집합을 만들어준다.

A와 B의 INTERSECT결과

 

INNER JOIN과 똑같기 때문에 실무에서 굳이 쓰지 않는다.

 

약간의 차이점은

UNION 류와 마찬가지로 2개의 SELECT문 간 컬럼의 갯수가 동일해야 하고, 데이터 타입이 동일해야 한다.

 

또한 NATURAL JOIN과 비슷하게 ON 뒤에 조건을 적어주지 않아도 INNER JOIN의 효과를 낼 수있다.

 

[샘플데이터 확인]

3개의 테이블

 

[실습1]

KEYS 테이블의 employee_id와 HIPOS 테이블의 employee_id를 INTERSECT한다.

 

SELECT EMPLOYEE_ID
FROM KEYS

INTERSECT 

SELECT EMPLOYEE_ID
FROM HIPOS;

 

쿼리 결과

39. 집합 연산자와 서브커리 - 04. EXCEPT 연산

 

EXCEPT 연산자는 맨위에 SELECT문의 결과 집합에서 그 아래에 있는 SELECT문의 결과 집합을 제외한 결과를 리턴한다.

A와 B의 차집합과 동일하다 (A―B)

A―B

INTERSECT와 마찬가지로 2개의 SELECT문 간 컬럼의 갯수가 동일해야 하고, 데이터 타입이 동일해야 한다.

실무에서 많이 쓰인다.

 

[실습1]

우선, 재고가 존재하는 영화의 film_id와 영화 제목을 추출한다.inventory 테이블에 film_id가 존재한다는 것은 그 영화의 재고가 있다는 것을 의미한다.

 

SELECT DISTINCT INVENTORY.FILM_ID, FILM.TITLE
FROM INVENTORY
JOIN FILM ON FILM.FILM_ID = INVENTORY.FILM_ID
ORDER BY FILM.TITLE;

 

쿼리 결과

이제 재고가 없는 영화들을 추출해본다.

모든 필름 정보에서 재고가 있는 필름 정보를 제외한다.

 

SELECT FILM_ID, TITLE
FROM FILM

EXCEPT 

SELECT DISTINCT INVENTORY.FILM_ID, TITLE
FROM INVENTORY
INNER JOIN FILM ON FILM.FILM_ID = INVENTORY.FILM_ID
ORDER BY TITLE;

 

쿼리 결과

'🤓 기술 학습 & 공부 기록/컴퓨터 일반' 카테고리의 다른 글
  • [SQLD] 데이터 모델링의 이해 (1)
  • [SQL 2-5강 (2)] UNION, UNION ALL, INTERSECT, EXCEPT
  • [SQL 2-4강 (2)] UNION, UNION ALL
  • [SQL 2-4강 (1)] GROUP BY, HAVING, JOIN, CASE, ROUND
지식물원
지식물원
지식이 자라는 식물원!
  • 지식물원
    지식물원
    지식물원
  • 전체
    오늘
    어제
    • 분류 전체보기 (510)
      • 🎨 프론트엔드 공부 (247)
        • JS & TS (86)
        • HTML & CSS (22)
        • React & Next (49)
        • Vue & Nuxt (22)
        • 기타 (68)
      • 🤓 기술 학습 & 공부 기록 (116)
        • Node.js (0)
        • Python (37)
        • 백엔드 (0)
        • 딥러닝 (1)
        • 컴퓨터 일반 (72)
        • 개발 인프라 (6)
      • 👨‍💻 프로젝트 경험 (6)
        • Work (0)
        • Toy (6)
      • ⚙️ 개발 팁 & 노하우 (21)
        • 프론트엔드 (6)
        • 기타 (15)
      • ☕️ 커리어 & 인터뷰 준비 (88)
        • 코딩 테스트 (88)
      • 📰 기술 트렌드 & 생각 정리 (4)
      • 📚 기타 (25)
        • 마케팅 (15)
        • 비개발서적 (10)
  • 블로그 메뉴

    • 태그
  • 링크

  • 공지사항

    • 모바일 접속 시 코드 하이라이팅 깨질 때
  • 인기 글

  • hELLO· Designed By정상우.v4.10.3
지식물원
[SQL 2-5강 (1)] INTERSECT, EXCEPT
상단으로

티스토리툴바