SQL 하위 쿼리는 다른 쿼리 내부의 쿼리입니다. SQL 문의 WHERE 또는 HAVING 절에서 사용됩니다. 하위 쿼리를 사용하면 한 쿼리의 결과를 다른 쿼리의 인수로 지정할 수 있습니다.
SQL을 작성할 때 쿼리에서 다른 쿼리의 결과를 기반으로 매개변수를 지정할 수 있습니다. 예를 들어 고객 목록이 있다고 가정합니다. 특정 금액 이상의 가치가 있는 주문을 한 고객 목록을 얻고 싶을 수 있습니다. 주문 및 고객 정보는 다른 테이블에 저장됩니다.
SQL 하위 쿼리는 작업이 들어옵니다. 하위 쿼리 , 중첩 쿼리라고도 하는 SELECT WHERE 내의 쿼리 다른 SQL 절 질문. 기본 SQL 그런 다음 쿼리는 하위 쿼리의 결과를 사용합니다.
이 자습서에서는 몇 가지 예를 참조하여 SQL에서 하위 쿼리를 사용하는 방법에 대해 설명합니다.
SQL 하위 쿼리:가이드
SQL 하위 쿼리는 다른 쿼리 내의 쿼리입니다. 다른 쿼리의 결과에 의존하는 쿼리를 실행하는 데 사용됩니다. 하위 쿼리를 사용하면 두 개의 개별 쿼리를 작성하고 결과를 복사하여 붙여넣을 필요 없이 이 작업을 수행할 수 있습니다. 하위 쿼리는 WHERE 또는 HAVING 절에 나타납니다.
다음은 SQL SELECT 문의 하위 쿼리 구문입니다.
SELECT name FROM products WHERE supplier_id IN (SELECT id FROM suppliers WHERE local = True);
이 쿼리는 현지 회사에서 제공하는 모든 제품의 이름을 선택합니다. SQL IN 문에 대한 입력으로 하위 쿼리를 사용합니다. SQL IN 문은 "products" 테이블의 모든 레코드를 반환하며, 여기서 Supplier_id는 하위 쿼리 결과입니다.
INSERT, UPDATE 및 DELETE 문에서 하위 쿼리를 사용할 수 있습니다.
참가자의 81%는 부트캠프에 참석한 후 기술 직업 전망에 대해 더 자신감을 느꼈다고 말했습니다. 지금 부트캠프에 참여하십시오.
부트캠프 졸업생은 부트캠프 시작부터 첫 직장을 찾는 데까지 6개월도 채 걸리지 않았습니다.
하위 쿼리는 괄호 안에 나타나야 합니다. 이것은 하위 쿼리 내부를 다른 하위 쿼리와 구별합니다.
하위 쿼리에서 관련 데이터를 선택했는지 확인해야 합니다. 위의 하위 쿼리에서 id를 선택했습니다. 공급업체 테이블. 다른 열을 선택한 경우 쿼리가 작동하지 않습니다. 이는 주요 쿼리가 공급업체 ID에 의존하기 때문입니다.
SQL 서브쿼리 예:SELECT
우등생 명단에 이름을 올리고 싶다면 하위 쿼리를 사용할 수 있습니다. . 이것은 명예 판정 정보가 다른 테이블에 있다고 가정합니다.
예를 들어 SQL 하위 쿼리 일하다. 다음 쿼리는 $200 이상의 주문을 한 모든 고객의 목록을 반환합니다.
SELECT * FROM customers WHERE id IN (SELECT DISTINCT customer_id FROM orders WHERE cost > 200);
하위 쿼리 다음을 반환합니다.
이름 | 이메일 | 주소 | 충성도_계획 | 아이디 |
케이티 | [email protected] | 마운틴 뷰, 캘리포니아 | 없음 | 4 |
존 | [email protected] | 매사추세츠주 보스턴 | 없음 | 1 |
(2줄)
첫 번째 줄에서 고객의 모든 열을 선택합니다. 테이블. 그런 다음 하위 쿼리에 고객 ID가 있는 고객만 가져오도록 지정합니다. . 하위 쿼리 주문에서 고유한 모든 고객 ID를 선택합니다. 항목 비용이 $200 이상인 테이블. 이러한 조건과 일치하는 레코드는 결과에 해당 고객을 포함합니다.
SQL 하위 쿼리:INSERT
$200 이상 구매한 고객의 모든 기록을 high_value_customers라는 테이블에 삽입하려고 합니다. 이렇게 하려면 SQL 하위 쿼리와 SQL INSERT 명령을 사용할 수 있습니다.
INSERT INTO high_value_customers SELECT * FROM customers WHERE id IN (SELECT DISTINCT customer_id FROM orders WHERE cost > 200);
high_value_customers를 쿼리하면 테이블에서 우리는 한 테이블에서 모든 고가치 고객을 볼 수 있습니다.
이름 | 이메일 | 주소 | 충성도_계획 | 아이디 |
케이티 | [email protected] | 마운틴 뷰, 캘리포니아 | 골드 | 4 |
존 | [email protected] | 매사추세츠주 보스턴 | 없음 | 1 |
(2줄)
SQL 하위 쿼리:업데이트
하위 쿼리를 사용할 수 있습니다. 테이블 내의 데이터를 업데이트합니다. 예를 들어 고가의 구매를 한 모든 고객의 로열티 플랜을 Bronze로 업데이트하고 싶다고 가정해 보겠습니다. . 다음 쿼리를 사용하여 해당 작업을 수행할 수 있습니다.
UPDATE customers SET loyalty_plan = 'High Value' WHERE id IN (SELECT DISTINCT customer_id FROM orders WHERE cost > 200);
고객에게 문의할 때 표를 보면 두 가지 높은 가치 고객이 업데이트되었습니다:
이름 | 이메일 | 주소 | 충성도_계획 | 아이디 |
케이티 | [email protected] | 마운틴 뷰, 캘리포니아 | 높은 가치 | 4 |
존 | [email protected] | 매사추세츠주 보스턴 | 높은 가치 | 1 |
(2줄)
SQL 하위 쿼리:DELETE
하위 쿼리를 사용할 수 있습니다. SQL DELETE 문을 사용하여 테이블의 개별 또는 여러 행을 삭제합니다.
데이터베이스의 새 테이블로 이동한 고가치 고객의 주문을 삭제하는 명령을 작성해 보겠습니다. 이렇게 하려면 하위 쿼리에 의존해야 합니다.
DELETE FROM orders WHERE customer_id IN (SELECT id FROM customers WHERE loyalty_plan = 'High Value');
가치가 높은 고객의 모든 주문이 삭제된 것을 볼 수 있습니다. 중첩된 하위 쿼리는 다음을 반환합니다.
id | 항목_이름 | 비용 | 고객 ID |
5 | 오크 의자 | 100 | 3 |
(1줄)
결론
SQL 하위 쿼리는 다른 쿼리 내의 쿼리입니다. 하위 쿼리를 사용하면 한 쿼리의 결과를 다른 쿼리에 의존할 수 있습니다. 하위 쿼리는 SQL 문의 HAVING 또는 WHERE 절에 지정됩니다.
하위 쿼리 다른 쿼리의 결과에 의존하는 쿼리를 쉽게 실행할 수 있습니다. 이 가이드에서는 하위 쿼리를 작성하는 방법에 대해 논의했습니다. SQL에서 섬기는 사람. SELECT에서 하위 쿼리를 사용하는 방법에 대해서도 이야기했습니다. , 삽입 , 업데이트 및 DELETE SQL 진술.
SQL 코딩에 대해 더 알고 싶으십니까? SQL 학습 방법 가이드를 확인하십시오. 이 가이드에는 SQL 학습에 대한 전문가 조언이 포함되어 있습니다. 학습 여정을 계속하는 데 도움이 되는 최고의 과정 목록도 찾을 수 있습니다.