MySQL 예제가 포함된 하위 쿼리 튜토리얼
하위 쿼리란 무엇입니까?
하위 쿼리는 다른 쿼리 내에 포함된 선택 쿼리입니다. 내부 선택 쿼리는 일반적으로 외부 선택 쿼리의 결과를 결정하는 데 사용됩니다.
하위 쿼리 구문을 살펴보겠습니다.
MyFlix 비디오 라이브러리의 일반적인 고객 불만은 영화 제목 수가 적다는 것입니다. 경영진은 타이틀 수가 가장 적은 카테고리의 영화를 구매하려고 합니다.
다음과 같은 쿼리를 사용할 수 있습니다.
SELECT category_name FROM categories WHERE category_id =( SELECT MIN(category_id) from movies);
결과를 제공합니다
이 쿼리가 어떻게 작동하는지 살펴보겠습니다.
위의 형태는 행 하위 쿼리. 이러한 하위 쿼리에서 내부 쿼리는 단 하나의 결과만 제공할 수 있습니다. 행 하위 쿼리로 작업할 때 허용되는 연산자는 [=, >, =, <=, ,!=, ]입니다.
또 다른 예를 살펴보겠습니다.
영화를 대여했지만 아직 반납하지 않은 사람들의 이름과 전화번호를 원한다고 가정해 보겠습니다. 이름과 전화번호를 얻으면 전화를 걸어 상기시켜줍니다. 다음과 같은 쿼리를 사용할 수 있습니다.
SELECT full_names,contact_number FROM members WHERE membership_number IN (SELECT membership_number FROM movierentals WHERE return_date IS NULL );
이 쿼리가 어떻게 작동하는지 살펴보겠습니다.
이 경우 내부 쿼리는 둘 이상의 결과를 반환합니다. 위의 유형은 T입니다.하위 쿼리 가능y.
지금까지 우리는 두 개의 쿼리를 보았습니다. 이제 다음의 예를 살펴보겠습니다. 삼중 쿼리!!!
경영진이 가장 높은 급여를 받는 회원에게 보상하기를 원한다고 가정해 보겠습니다.
다음과 같은 쿼리를 실행할 수 있습니다.
Select full_names From members WHERE membership_number = (SELECT membership_number FROM payments WHERE amount_paid = (SELECT MAX(amount_paid) FROM payments));
위의 쿼리는 다음과 같은 결과를 제공합니다.
하위 쿼리와 조인!
Joins 와 비교할 때 하위 쿼리는 사용하기 쉽고 읽기 쉽습니다. 그것들은 그렇게 복잡하지 않습니다 조인
그러므로 다음과 같은 경우가 자주 사용됩니다. SQL 초보자.
그러나 하위 쿼리에는 성능 문제가 있습니다. 하위 쿼리 대신 조인을 사용하면 성능이 최대 500배 향상될 수 있습니다.
선택 사항이 있는 경우 하위 쿼리보다 JOIN을 사용하는 것이 좋습니다.
하위 쿼리는 위의 목적을 달성하기 위해 JOIN 작업을 사용할 수 없는 경우에만 대체 솔루션으로 사용해야 합니다.
요약
- 하위 쿼리는 다른 쿼리 내에 포함된 쿼리입니다. 포함된 쿼리를 내부 쿼리라고 하고 컨테이너 쿼리를 외부 쿼리라고 합니다.
- 하위 쿼리는 사용하기 쉽고 뛰어난 유연성을 제공하며 쿼리를 구성하는 단일 논리적 구성 요소로 쉽게 분류될 수 있습니다. 지원 쿼리를 디버깅합니다.
- MySQL 세 가지 유형의 하위 쿼리, 즉 스칼라, 행 및 테이블 하위 쿼리를 지원합니다.
- 스칼라 하위 쿼리는 단일 행과 단일 열만 반환합니다.
- 행 하위 쿼리는 단일 행만 반환하지만 둘 이상의 열을 가질 수 있습니다.
- 테이블 하위 쿼리는 여러 행과 열을 반환할 수 있습니다.
- 하위 쿼리는 INSERT, UPDATE 및 DELETE 쿼리에도 사용할 수 있습니다.
- 성능 문제의 경우, 여러 테이블에서 데이터를 가져올 때 하위 쿼리 대신 JOIN을 사용하는 것이 좋습니다. 하위 쿼리는 정당한 이유가 있을 때만 사용해야 합니다.