서브쿼리 예제

SQL에서 하위 쿼리는 단순히 다른 쿼리 내의 쿼리로 정의할 수 있습니다. 즉, 하위 쿼리는 다른 SQL 쿼리의 WHERE 절에 포함된 쿼리라고 할 수 있습니다. 서식 지정에 대한 간략한 참고 사항: 하위 쿼리를 사용할 때 기억해야 할 중요한 점은 독자가 쿼리의 어느 부분을 함께 실행할지 쉽게 결정할 수 있는 방법을 제공하는 것입니다. 대부분의 사람들은 어떤 식으로든 하위 쿼리를 들여쓰기하여 이 작업을 수행합니다. 이 자습서의 예제는 괄호까지 매우 멀리 들여쓰기됩니다. 많은 하위 쿼리를 중첩하는 경우에는 실용적이지 않으므로 두 공백 정도만 들여쓰기하는 것이 일반적입니다. 위의 예제와 연습 문제는 하위 쿼리를 실제로 필요로 하지 않으며 WHERE 절에 여러 조건을 추가하여 해결할 수 있는 문제를 해결합니다. 다음 섹션에서는 하위 쿼리가 해당 문제를 해결하는 가장 좋은 방법또는 유일한 방법인 예제를 제공합니다. 이전 예제에서는 하위 쿼리가 IN 연산자와 함께 어떻게 사용되었는지 를 보았습니다. 다음 예제에서는 NOT IN 연산자가 있는 하위 쿼리를 사용하여 위치 1700에서 위치를 찾지 못한 모든 직원을 찾습니다. 즉, 최대값보다 크다는 의미입니다.

예를 들어 >ALL(1, 2, 3)은 3보다 큰 것을 의미합니다. >ANY는 최소값보다 큰 값, 즉 값을 초과한다는 뜻입니다. 따라서 ANY (1, 2, 3)는 1보다 큰 것을 의미합니다. 외부 쿼리에 지정된 조건을 충족하기 위해 >ALL이 있는 하위 쿼리의 행의 경우 하위 쿼리를 도입하는 열의 값이 하위 쿼리에서 반환되는 값 목록의 각 값보다 커야 합니다. 무슨 일이 일어나고 있는지 파악하는 데 문제가 있는 경우 내부 쿼리를 개별적으로 실행하여 결과가 어떻게 보이는지 파악해 보십시오. 일반적으로 먼저 내부 쿼리를 작성하고 결과가 이해될 때까지 수정한 다음 외부 쿼리로 이동하는 것이 가장 쉽습니다. NOT EXISTS 연산자는 EXISTS 연산자와 반대입니다. 많은 쿼리는 하위 쿼리를 한 번 실행하고 결과 값 또는 값을 외부 쿼리의 WHERE 절로 대체하여 평가할 수 있습니다. 상호 연관된 하위 쿼리(반복 하위 쿼리라고도 함)를 포함하는 쿼리에서 하위 쿼리는 해당 값에 대한 외부 쿼리에 종속됩니다.

즉, 하위 쿼리는 외부 쿼리에서 선택할 수 있는 각 행에 대해 한 번씩 반복적으로 실행됩니다. 이 쿼리는 SalesPerson 테이블의 보너스가 5000이고 직원 식별 번호가 직원 및 SalesPerson 테이블과 일치하는 각 직원의 이름과 성의 인스턴스 를 검색합니다. 수정되지 않은 비교 연산자로 도입된 하위 쿼리에는 단일 값을 반환하기 때문에 집계 함수가 포함되는 경우가 많습니다. 예를 들어 다음 문은 정가가 평균 정가보다 큰 모든 제품의 이름을 찾습니다. 내부 쿼리가 외부 쿼리에 종속된 경우 상관 하위 쿼리가 있습니다. 상관 하위 쿼리의 예는 다음과 같습니다: 하위 쿼리는 비교 연산자 중 하나(=, <,<, >, =, <, <, <, <, <, <, <=)와 함께 도입될 수 있습니다. 이 쿼리의 결과를 이해하려면 각 제품의 이름을 차례로 고려하십시오. 이 값으로 인해 하위 쿼리가 하나 이상의 행을 반환합니까? 즉, 쿼리로 인해 존재 테스트가 TRUE로 평가됩니까? 이 섹션에서는 하위 쿼리 사용 의 요구 사항을 알아봅니다.

Comments are closed.