SQL - INTERSECT 연산자: 초보자를 위한 친절한 가이드

안녕하세요, 미래의 SQL 마법사 여러분! 오늘 우리는 SQL의 세계로 흥미로운 여정을 떠나게 될 것입니다. 특히, INTERSECT 연산자에 집중해보겠습니다. 프로그래밍에 새로운 분이라면 걱정하지 마세요 - 저는 여러분의 친절한 가이드가 되어 단계별로 설명해드릴게요. 좋아하는 음료를 한 잔 마시고, 이제 시작해봅시다!

SQL - INTERSECT Operator

SQL INTERSECT 연산자

INTERSECT는 무엇인가요?

두 개의 데이터 셋이 있다고 가정해봅시다. 이 두 개의 데이터 셋이 공통적으로 가지고 있는 것을 찾고 싶다면, SQL의 INTERSECT 연산자가 그 역할을 합니다! 이는 베른 다이어그램에서 두 개의 원이 교차하는 부분을 찾는 것과 같습니다.

간단한 예제로 시작해보겠습니다:

SELECT column1 FROM table1
INTERSECT
SELECT column1 FROM table2;

이 쿼리는 table1table2 모두에 존재하는 고유한 값을 반환합니다. 멋지죠?

실제 예제

가정해봅시다. 두 개의 테이블 students_mathstudents_science가 있다고 합시다. 두 과목 모두에 등록된 학생을 찾고 싶습니다.

SELECT student_id FROM students_math
INTERSECT
SELECT student_id FROM students_science;

이 쿼리는 두 테이블 모두에 나타나는 학생 ID를 반환하며, 이는 수학과 과학 두 과목을 동시에 듣는 학생을 보여줍니다.

중요한 포인트 기억하기

  1. INTERSECT는 고유한 값을 반환합니다.
  2. 두 SELECT 문에서의 열의 수와 순서는 동일해야 합니다.
  3. 상응하는 열의 데이터 유형은 호환되어야 합니다.

BETWEEN 연산자와 함께 사용하는 INTERSECT

이제 BETWEEN 연산자와 함께 INTERSECT를 조합해보겠습니다. BETWEEN 연산자는 주어진 범위 내의 값을 선택합니다.

예제: 공통 연령 찾기

employees_department_aemployees_department_b라는 두 개의 테이블이 있다고 가정해봅시다. 두 부서 모두에서 25세에서 35세 사이의 직원의 연령을 찾고 싶습니다.

SELECT age FROM employees_department_a WHERE age BETWEEN 25 AND 35
INTERSECT
SELECT age FROM employees_department_b WHERE age BETWEEN 25 AND 35;

이 쿼리는 두 부서 모두에 존재하는 연령을 반환하지만, 주어진 범위 내에서만입니다. 두 셋의 교차를 찾는 것처럼 보이지만, 각 셋에 대해 먼저 필터링을 한 다음입니다!

IN 연산자와 함께 사용하는 INTERSECT

IN 연산자는 WHERE 절에서 여러 가지 값을 지정할 수 있게 합니다. IN 연산자를 INTERSECT와 함께 사용해보겠습니다.

예제: 공통 제품 찾기

online_storephysical_store라는 두 개의 테이블이 있다고 가정해봅시다. 두 가게 모두에서 특정 카테고리의 제품이 어디에서 구매 가능한지 찾고 싶습니다.

SELECT product_id FROM online_store WHERE category IN ('Electronics', 'Books', 'Toys')
INTERSECT
SELECT product_id FROM physical_store WHERE category IN ('Electronics', 'Books', 'Toys');

이 쿼리는 온라인과 오프라인 가게 모두에서 구매 가능한 제품 ID를 반환하지만, 전자제품, 책, 장난감 카테고리에 한정됩니다. 각 가게의 짧은 목록을 만들고 그 공통점을 찾는 것과 같습니다!

LIKE 연산자와 함께 사용하는 INTERSECT

LIKE 연산자는 WHERE 절에서 지정된 패턴을 column에서 검색하는 데 사용됩니다. LIKE 연산자를 INTERSECT와 함께 사용해보겠습니다.

예제: 공통 사용자 이름 찾기

forum_usersblog_users라는 두 개의 테이블이 있다고 가정해봅시다. 두 플랫폼 모두에서 'tech_'로 시작하는 사용자 이름을 찾고 싶습니다.

SELECT username FROM forum_users WHERE username LIKE 'tech_%'
INTERSECT
SELECT username FROM blog_users WHERE username LIKE 'tech_%';

이 쿼리는 포럼과 블로그 모두에 존재하는 사용자 이름을 반환하지만, 'tech_'로 시작하는 것들만입니다. 두 플랫폼에서 활동하는 기술 열정가를 찾는 것과 같습니다!

결론

이제 여러분이 INTERSECT 연산자와 다른 SQL 연산자를 조합하여 강력한 쿼리를 수행하는 방법을 탐구해보았습니다. 연습이 완벽을 만든다는 것을 기억하세요, 그러니 이 예제들을 시도하고 자신만의 쿼리를 만들어보세요.

이제 우리가 다루었던 방법들의 빠른 참조 표입니다:

방법 설명
INTERSECT 두 개의 SELECT 문이 출력한 고유한 행을 반환합니다
BETWEEN과 함께 사용하는 INTERSECT 주어진 범위 내의 공통 값을 찾습니다
IN과 함께 사용하는 INTERSECT 가능한 값의 목록에서 공통 값을 찾습니다
LIKE과 함께 사용하는 INTERSECT 지정된 패턴을 일치시키는 공통 값을 찾습니다

SQL은 처음에는 어려워 보일 수 있지만, 쿼리를 작성할 때마다 데이터 조작의 마스터로 가까워집니다. 연습을 계속하고, 호기심을 유지하면 곧 복잡한 쿼리를 쉽게 작성할 수 있을 것입니다!

데이터베이스의 세계에서 여러분은 탐정이고, SQL은 여러분의 확대경입니다. 행복한 쿼리 작성을 기원하며, 여러분의 INTERSECT가 항상 찾고자 하는 것을 발견하길 바랍니다!

Credits: Image by storyset