0007917
Visit Today : 317
This Month : 3357
Your IP Address: 3.233.226.151

postgresql 서브쿼리 예제

다음 예제에서 쿼리는 위의 조건에 따라 다른 결과를 표시합니다: 다른 select 문 내의 FROM 절. 다양한 시나리오에서 매우 유용합니다. 실제로 인터섹트 및 EXCEPT 예제와 함께 COUNT(*)를 사용했을 때 이 에 대한 예를 실제로 보았습니다. 하위 쿼리는 복잡한 쿼리를 단순화하고 더 많은 유연성을 허용하는 데 도움이 되며 적절한 이름(인라인 보기)에서 알 수 있듯이 단일 쿼리 내에서 미니 뷰를 만드는 것과 같습니다. 구문은 WHERE 절로 하위 쿼리 결과를 필터링하지 않은 경우 어떻게 됩니까? 보자: SELECT * 대신 col1, colN을 선택해야 하는 이유에 대한 일반적인 대답은 네트워크 트래픽을 줄이는 것입니다. 대부분의 경우, 합리적으로 정규화된 데이터베이스와 오늘날의 고속 네트워크 연결로 인해 큰 문제가 되지 않을 수 있습니다. 326/89K 행과 관련된 한 예에서 단일 열을 선택한 것과 모든 열을 선택하여 발생하는 네트워크 트래픽의 차이는 약 10%였습니다. ALL 연산자는 하위 쿼리에서 반환되는 모든 값과 값을 비교합니다. 오른쪽은 괄호로 구성된 하위 쿼리로 정확히 하나의 열을 반환해야 합니다.

왼쪽 식은 부울 결과를 생성해야 하는 지정된 연산자를 사용하여 하위 쿼리 결과의 각 행을 평가하고 비교합니다. 스칼라 하위 쿼리는 괄호 안의 일반 SELECT 쿼리로, 한 열로 정확히 한 행을 반환합니다. 쿼리 작성에 대한 자세한 내용은 7장을 참조하십시오. SELECT 쿼리가 실행되고 반환된 단일 값이 주변 값 식에 사용됩니다. 두 개 이상의 행 또는 두 개 이상의 열을 스칼라 하위 쿼리로 반환하는 쿼리를 사용하는 것은 오류입니다. 쿼리는 big_table의 모든 행에 대한 읽기 및 개수 작업을 수행하지 않도록 하위 쿼리에 WHERE 절을 „푸시”하여 최적화할 수 있습니다. : 하위 쿼리의 결과에 일반 값 연산자사용하려면 하나의 필드만 반환해야 합니다. 예를 들어 보다 일반적인 하위 쿼리를 사용하여 작성자 식별자를 확인하고 여러 행이 발견된 경우 이전 INNER JOIN 쿼리와 동일한 결과와 동일한 결과가 있지만 이번에는 하위 쿼리와 같은 오류가 표시될 수 있습니다.

shoe_id 열은 여기에 맞게 하기에 좋은 후보입니다. 그리고 하위 쿼리에 대한 중요한 구성 요소입니다. 준비된 문은 단일 세션이 많은 수의 유사한 문을 실행하는 데 사용될 때 가장 큰 성능 이점이 있습니다. 쿼리에 많은 테이블의 조인이 포함되거나 여러 규칙의 적용이 필요한 경우 명령문이 계획하거나 다시 작성하기가 복잡한 경우 성능 차이가 특히 중요합니다. 명령문이 계획및 다시 작성하는 것이 비교적 간단하지만 실행비용이 상대적으로 비싸다면 준비된 명령문의 성능 이점이 덜 두드러집니다. 와에서 데이터 수정 문 (INSERT, UPDATE 또는 DELETE)을 사용할 때와 같이 최적화 울타리가 유용한 경우도 있습니다. CTE가 한 번만 실행되기 때문에 플래너가 하위 쿼리를 여러 번 호출할 수 있고 삭제되거나 업데이트된 행의 정보를 반환하지 않는 결과와 동일합니다. 공통 테이블 표현식과 하위 쿼리는 모두 유용하며 하나 또는 다른 하나는 특정 경우에 더 수행될 수 있습니다. 이것은 하위 쿼리가 더 나은 옵션이지만 일반적으로 CTE가 하위 쿼리보다 빠르거나 더 빠르며 대부분의 시간을 기울인다는 것을 알게되는 한 가지 예입니다.