SQL Server 하위 쿼리

요약 :이 자습서에서는 SQL Server 하위 쿼리와 데이터 쿼리에 하위 쿼리를 사용하는 방법에 대해 알아 봅니다.

SQL Server 하위 쿼리 소개

하위 쿼리는 SELECT, INSERT, UPDATE 또는 DELETE.

다음 예를 살펴 보겠습니다.

orderscustomers 테이블

다음 문은 WHERE 절에서 하위 쿼리를 사용하는 방법을 보여줍니다. div id = “3eb7f9a1d0″>

문을 사용하여 New York에있는 고객의 판매 주문을 찾습니다.

결과는 다음과 같습니다.

이 예에서 다음 문은 하위 쿼리입니다.

Code language: SQL (Structured Query Language) (sql)

항상 SELECT 괄호로 묶인 하위 쿼리의 쿼리 ().

하위 쿼리는 내부 쿼리 또는 내부 선택이라고도하며 하위 쿼리를 포함하는 문은 외부 선택 또는 외부 쿼리 :

SQL 서버는 위의 전체 쿼리 예제를 다음과 같이 실행합니다.

먼저 하위 쿼리를 실행하여 New York에서 찾은 고객의 고객 식별 번호 목록을 가져옵니다.

Code language: SQL (Structured Query Language) (sql)

둘째, SQL Server는 IN 연산자의 하위 쿼리에서 반환 된 고객 식별 번호를 대체하고 외부 쿼리를 실행하여 최종 결과 집합을 가져옵니다.

할 수있는대로 ee, 하위 쿼리를 사용하여 두 단계를 함께 결합 할 수 있습니다. 하위 쿼리를 사용하면 고객 식별 번호를 선택하고이를 외부 쿼리에 연결할 필요가 없습니다. 또한 쿼리 자체는 고객 데이터가 변경 될 때마다 자동으로 조정됩니다.

하위 쿼리 중첩

하위 쿼리는 다른 하위 쿼리 내에 중첩 될 수 있습니다. SQL Server는 최대 32 단계의 중첩을 지원합니다. 다음 예를 고려하세요.

먼저, SQL Server는 다음 하위 쿼리를 실행하여 StriderTrek 브랜드의 브랜드 식별 번호 목록을 가져옵니다.

둘째, SQL Server는 속한 모든 제품의 평균 가격표를 계산합니다.

Code language: SQL (Structured Query Language) (sql)

셋째, SQL Server는 또는 Trek 브랜드.

SQL Server 하위 쿼리 유형

여러 위치에서 하위 쿼리를 사용할 수 있습니다.

  • 표현식 대신
  • IN 또는 NOT IN
  • ANY 또는 ALL
  • EXISTS 또는 NOT EXISTS
  • UPDATE, DELETE, 또는 INSERT
  • FROM

SQL Server 하위 쿼리 표현식 대신 사용

하위 쿼리가 단일 값을 반환하면 표현식이 사용되는 모든 곳에서 사용할 수 있습니다.

다음 예에서 하위 쿼리는 SELECT 문에서 max_list_price라는 열 표현식입니다.

SQL Server 하위 쿼리가 IN 연산자와 함께 사용됨

IN 연산자는 0 개 이상의 값 집합을 반환합니다. 하위 쿼리가 값을 반환 한 후 외부 쿼리가 값을 사용합니다.

다음 쿼리는 Bike Store에서 판매하는 모든 산악 자전거 및 도로 자전거 제품의 이름을 찾습니다.

이 쿼리는 다음 두 단계로 평가됩니다.

  1. 먼저, 내부 쿼리는 이름 Mountain Bikescode Road Bikes
  2. 와 일치하는 카테고리 식별 번호 목록을 반환합니다.

  3. 둘째, 이러한 값은 목록에있는 값 중 하나와 일치하는 카테고리 식별 번호가있는 제품 이름을 찾는 외부 쿼리로 대체됩니다.

SQL Server 하위 쿼리는 ANY 연산자와 함께 사용됩니다.

ANY 연산자로 도입 된 하위 쿼리의 구문은 다음과 같습니다.

Code language: SQL (Structured Query Language) (sql)

하위 쿼리가 v1, v2,… vn 값 목록을 반환한다고 가정합니다. ANY 연산자는 비교 쌍 (scalar_expression, vi) 중 하나가 다음을 평가하는 경우 TRUE를 반환합니다. TRUE로; 그렇지 않으면 FALSE를 반환합니다.

예를 들어 다음 쿼리는 정가가 모든 제품 브랜드의 평균 정가보다 크거나 같은 제품을 찾습니다. .

각 브랜드에 대해 하위 쿼리 최대 정가를 찾습니다. 외부 쿼리는 이러한 최대 가격을 사용하고 개별 제품의 정가가 브랜드의 최대 정가보다 크거나 같은지 결정합니다.

SQL Server 하위 쿼리는 ALL 연산자와 함께 사용됩니다.

ALL 연산자는 ANY 연산자와 구문이 동일합니다.

Code language: SQL (Structured Query Language) (sql)

ALL 연산자는 모든 비교 쌍 (scalar_expression, vi)이 다음과 같이 평가되면 TRUE를 반환합니다. TRUE; 그렇지 않으면 FALSE를 반환합니다.

다음 쿼리는 정가가 하위 쿼리에서 반환 된 평균 정가보다 크거나 같은 제품을 찾습니다.

SQL Server 하위 쿼리는 EXISTS 또는 NOT과 함께 사용됩니다. EXISTS

다음은 EXISTS 연산자로 도입 된 하위 쿼리 구문을 보여줍니다.

Code language: SQL (Structured Query Language) (sql)

EXISTS 연산자는 하위 쿼리가 결과를 반환하는 경우 TRUE를 반환합니다. 그렇지 않으면 FALSE를 반환합니다.

반면에 NOT EXISTS는 연산자.

다음 쿼리는 2017 년에 제품을 구매 한 고객을 찾습니다.

EXISTSNOT EXISTS를 사용하는 경우 >, 2017 년에 제품을 구매하지 않은 고객을 찾을 수 있습니다.

FROM 절의 SQL Server 하위 쿼리

모든 영업 직원의 주문 합계 평균을 구한다고 가정합니다. 이를 위해 먼저 직원의 주문 수를 찾을 수 있습니다.

그런 다음이 결과 집합에 AVG() 함수를 적용 할 수 있습니다. 쿼리는 가상 테이블처럼 보이는 결과 집합을 반환하므로 다음과 같이 다른 쿼리의 FROM 절에 전체 쿼리를 배치 할 수 있습니다.

FROM 절에는 테이블 별칭이 있어야합니다. 이 예에서는 t를 하위 쿼리의 테이블 별칭으로 사용했습니다. 최종 결과를 얻기 위해 SQL Server는 다음 단계를 수행합니다.

  • FROM 절에서 하위 쿼리를 실행합니다.
  • 하위 쿼리의 결과를 사용하고 외부 쿼리를 실행합니다.

이 자습서에서는 SQL Server 하위 쿼리 개념과 다양한 하위 쿼리 유형을 사용하여 데이터를 쿼리하는 방법에 대해 배웠습니다.

답글 남기기

이메일 주소를 발행하지 않을 것입니다. 필수 항목은 *(으)로 표시합니다