오라클 데이터 검색 - SUBSELECT(1) IN
어쩌다 보니 일요일마다 강좌를 올리게 되네요.
이번 시간부터 SUBSELECT에 관해 설명드리겠습니다.

SUBSELECT는 말 그대로 SELECT 문에 부속되는 SELECT문입니다. 통상 SELECT 문의 WHERE 절에 SELECT 문을 한번 더 쓰는 것을 말합니다. 즉 SELECT 문으로 검색한 결과를 이용해 어떤 조건식을 사용할 때 사용합니다.
역시 실제 예를 통해 설명하는 것이 낫겠네요. 그냥 개념을 설명하자니 말만 꼬이고...
SELECT EMP_NUM, LAST_NAME, FIRST_NAME, JOB_CODE
FROM EMP
WHERE EMP_NUM IN
(SELECT EMP_NUM
FROM EMP_SKILL
WHERE AVAILABLE = 'YES');
위에서 괄호로 묶은 부분이 SUBSELECT 문입니다. 괄호는 제가 임의로 붙인 것이 아니라 실제로 사용할 때에도 괄호를 사용해야 합니다. SUBSELECT 문은 반드시 괄호로 둘러싸야 합니다.
위의 문장의 실행 순서는 괄호로 묶인 파란 색 문장부터 실행됩니다.
이해가 잘 안되시면 다음과 같이 SUBSELECT 문을 떼어서 생각해 봅시다.
SELECT EMP_NUM
FROM EMP_SKILL
WHERE AVAILABLE = 'YES';
위의 결과는 10001과 10003입니다.
따라서 위의 결과를 토대로 EMP_NUM이 10001과 10003인 레코드의 EMP_NUM, LAST_NAME, FIRST_NAME, JOB_CODE를 표시하면...

IN 연산자에 대해서는 앞서 이미 설명 드렸죠?
주어진 조건을 만족하는 값이 하나라도 있으면 정상적으로 수행이 됩니다.(제22강 오라클 데이터 검색 - Keywords(1)에서 설명하고 있습니다.)
그럼, 이제 SUBSELECT에 대해 정리해 볼까요.
이상 동주 아빠 손병목이었습니다.

이번 시간부터 SUBSELECT에 관해 설명드리겠습니다.

SUBSELECT는 말 그대로 SELECT 문에 부속되는 SELECT문입니다. 통상 SELECT 문의 WHERE 절에 SELECT 문을 한번 더 쓰는 것을 말합니다. 즉 SELECT 문으로 검색한 결과를 이용해 어떤 조건식을 사용할 때 사용합니다.
역시 실제 예를 통해 설명하는 것이 낫겠네요. 그냥 개념을 설명하자니 말만 꼬이고...
SELECT EMP_NUM, LAST_NAME, FIRST_NAME, JOB_CODE
FROM EMP
WHERE EMP_NUM IN
(SELECT EMP_NUM
FROM EMP_SKILL
WHERE AVAILABLE = 'YES');
위에서 괄호로 묶은 부분이 SUBSELECT 문입니다. 괄호는 제가 임의로 붙인 것이 아니라 실제로 사용할 때에도 괄호를 사용해야 합니다. SUBSELECT 문은 반드시 괄호로 둘러싸야 합니다.
위의 문장의 실행 순서는 괄호로 묶인 파란 색 문장부터 실행됩니다.
- 즉, EMP_SKILL 테이블에서 AVAILABLE 컬럼의 값이 'YES'인 EMP_NUM 컬럼의 값을 먼저 검색합니다.
- 그런 다음, EMP 테이블에서 위의 검색 결과에 해당되는 EMP_NUM을 가진 행의 EMP_NUM, LAST_NAME, FIRST_NAME, JOB_CODE를 표시합니다.
이해가 잘 안되시면 다음과 같이 SUBSELECT 문을 떼어서 생각해 봅시다.
SELECT EMP_NUMFROM EMP_SKILL
WHERE AVAILABLE = 'YES';
위의 결과는 10001과 10003입니다.
따라서 위의 결과를 토대로 EMP_NUM이 10001과 10003인 레코드의 EMP_NUM, LAST_NAME, FIRST_NAME, JOB_CODE를 표시하면...

IN 연산자에 대해서는 앞서 이미 설명 드렸죠?
주어진 조건을 만족하는 값이 하나라도 있으면 정상적으로 수행이 됩니다.(제22강 오라클 데이터 검색 - Keywords(1)에서 설명하고 있습니다.)
그럼, 이제 SUBSELECT에 대해 정리해 볼까요.
- SELECT의 WHERE절에 또 다른 SELECT를 기술한 것을 SUBSELECT라고 합니다.
- SUBSELECT의 결과 세트는 반드시 한 컬럼에 대한 값이어야 합니다.
- 일반적으로 바깥의 SELECT전에 SUBSELECT를 먼저 수행합니다.
- 반드시 SUBSELECT 문 전체를 괄호로 묶어야 합니다.
- SUBSELECT에서는 ORDER BY절을 사용할 수 없습니다.
이상 동주 아빠 손병목이었습니다.
