오라클 스칼라 서브쿼리 예제

오라클과 같은 데이터베이스 구현은 비용 기반 최적화 프로그램이 이를 판단하여 더 나은 실행 계획을 수립하는 경우 상호 관련된 하위 쿼리를 자동으로 해제할 수 있습니다. SQL에서 하위 쿼리는 단순히 다른 쿼리 내의 쿼리로 정의할 수 있습니다. 즉, 하위 쿼리는 다른 SQL 쿼리의 WHERE 절에 포함된 쿼리라고 할 수 있습니다. 오라클은 중첩된 하위 쿼리가 하위 쿼리 위의 상위 문 1 수준이라고 하는 테이블의 열을 참조할 때 상관 하위 쿼리를 수행합니다. 상위 문은 하위 쿼리가 중첩되는 SELECT, UPDATE 또는 DELETE 문일 수 있습니다. 개념적으로 상관되는 하위 쿼리는 parent 문에서 처리되는 각 행에 대해 한 번 평가됩니다. 그러나 최적화 프로그램은 쿼리를 조인으로 다시 작성하거나 다른 기술을 사용하여 시맨티컬과 동일한 쿼리를 공식화할 수 있습니다. Oracle은 하위 쿼리에 명명된 테이블을 찾은 다음 부모 문에서 명명된 테이블을 확인하여 하위 쿼리에서 정규화되지 않은 열을 해결합니다. 오라클은 위의 전체 쿼리를 두 단계로 평가합니다: 오라클에서 하위 쿼리는 쿼리 내부의 쿼리입니다. 하위 쿼리는 WHERE, FROM 또는 SELECT 절을 사용하여 만들 수 있습니다.

단일 행에서 단일 열 값을 반환하는 스칼라 하위 쿼리는 유효한 식 형식입니다. 구문에서 expr이 호출되는 대부분의 위치에서 스칼라 하위 쿼리 식을 사용할 수 있습니다. 자세한 내용은 “스칼라 하위 쿼리 표현식”을 참조하십시오. 이 예제에서는 SELECT 절에서 하위 쿼리를 사용하여 평균 제품의 정가를 얻었습니다. Oracle은 외부 쿼리에서 선택한 각 행에 대한 하위 쿼리를 평가합니다. 하위 쿼리에는 다른 하위 쿼리가 포함될 수 있습니다. Oracle Database는 최상위 쿼리의 FROM 절에서 하위 쿼리 수준 수에 제한을 두지 않습니다. WHERE 절에서 최대 255단계의 하위 쿼리를 중첩할 수 있습니다. 우리의 무료 고급 오라클 SQL 쿼리 자습서에 오신 것을 환영합니다. 이 자습서에서는 Webucator의 고급 Oracle SQL 쿼리 과정을 기반으로 합니다.

상관 하위 쿼리는 행별 처리에 사용됩니다. 각 하위 쿼리는 외부 쿼리의 모든 행에 대해 한 번 실행됩니다. 상위 문에서 처리되는 각 행에 대해 상관 하위 쿼리가 한 번 평가됩니다. 상위 문은 SELECT, UPDATE 또는 DELETE 문일 수 있습니다. IN 연산자를 사용하는 하위 쿼리는 종종 0 개 이상의 값 목록을 반환합니다. 하위 쿼리가 결과 집합을 반환한 후 외부 쿼리는 이를 사용합니다. 존재하지 않는 연산자 사용의 예 : 직원이 없는 모든 부서를 찾습니다. 상관 된 하위 쿼리에는 하위 쿼리와 하위 쿼리를 포함하는 쿼리 간의 조인이 있습니다.

테이블 별칭은 내부 쿼리의 테이블과 외부 쿼리 간의 관계를 명확히 하는 데 필요한 경우가 많습니다.