• MySQL매뉴얼
    • MySQL 5.6 매뉴얼
    • MySQL 5.1 매뉴얼
    • MySQL 5.0 매뉴얼
    • MySQL HA 매뉴얼
  • 기술문서
    • Xtrabackup 구성
    • 메모리 사용량 모니터링
  • 라이선스
  • 온라인문의
  • 회사소개
  • → 목 록 (MySQL5.6 한글메뉴얼) [close]
  • 1. MySQL 5.6 새로운 기능
  • 2. MySQL 설치 및 업그레이드
  • 3. MySQL Tutorial
  • 4. MySQL 프로그램
  • 5. MySQL 서버관리
  • 6. 보안
  • 7. 백업 및 복구
  • 8. 최적화
  • 9. Language Structure(언어구조)
  • 10. Character Sets(Globalization)
  • 11. 데이터형(Data Types)
  • 12. 함수와 연산자
  • 13. SQL 문법
  • 1. 데이터 정의 문
    2. 데이터 조작 문
    1. CALL 구문
    2. DELETE 구문
    3. DO 구문
    4. HANDLER 구문
    5. INSERT 구문
    6. LOAD DATA INFILE 구문
    7. LOAD XML 구문
    8. REPLACE 구문
    9. SELECT 구문
    10. 서브 쿼리 구문
    1. 스칼라 피연산자로 서브 쿼리
    2. 서브 쿼리를 사용한 비교
    3. ANY, IN 또는 SOME을 사용한 서브 쿼리
    4. ALL을 사용한 서브 쿼리
    5. 13.2.10.5 row(행) 서브 쿼리
    6. EXISTS 또는 NOT EXISTS를 사용한 서브 쿼리
    7. 상관 서브 쿼리
    8. FROM절의 서브 쿼리
    9. 서브 쿼리 오류
    10. 서브 쿼리의 최적화
    11. 서브 쿼리의 결합으로 재 작성
    11. UPDATE 구문
    3. MySQL 트랜잭션과 잠금 문
    4. 복제 문
    5. Prepared Statements위한 SQL 구문
    6. MySQL 복합문 구문
    7. 데이터베이스 관리 문
    8. MySQL 유틸리티 문
  • 14. InnoDB 스토리지 엔진
  • 15. 기타 스토리지 엔진
  • 16. 고가용성 및 확장성
  • 17. 리플리케이션
  • 18. MySQL Cluster
  • 19. 파티셔닝
  • 20. Stored Programs and Views
  • 21. INFORMATION_SCHEMA
  • 22. PERFORMANCE SCHEMA
  • 23. 컨넥터 및 API
  • 24. MySQL 확장
  • 25. MySQL Enterprise Edition
  • 26. MySQL Workbench
  • 27. 제약 및 제한
  • 28. MySQL 5.7 새로운 기능

13.2.10 서브 쿼리 구문

13.2.10.1 스칼라 피연산자로 서브 쿼리
13.2.10.2 서브 쿼리를 사용한 비교
13.2.10.3 ANY, IN 또는 SOME을 사용한 서브 쿼리
13.2.10.4 ALL을 사용한 서브 쿼리
13.2.10.5 행 서브 쿼리
13.2.10.6 EXISTS 또는 NOT EXISTS를 사용한 서브 쿼리
13.2.10.7 상관 서브 쿼리
13.2.10.8 FROM 절의 서브 쿼리
13.2.10.9 서브 쿼리 오류
13.2.10.10 서브 쿼리의 최적화
13.2.10.11 서브 쿼리의 결합으로 재 작성

서브 쿼리는 다른 문에서 SELECT 문입니다.

MySQL 4.1에서 SQL 표준에 필요한 서브 쿼리의 모든 형식과 조작뿐만 아니라 MySQL 고유의 일부 기능을 지원하고 있습니다.

서브 쿼리의 예를 보여줍니다.

 SELECT * FROM t1 WHERE column1 = (SELECT column1 FROM t2);

이 예제에서는 SELECT * FROM t1 ... 이 외부 쿼리 (또는 외부 문)이며, (SELECT column1 FROM t2) 가 서브 쿼리입니다. 이를이 서브 쿼리는 외부 쿼리에 중첩되어 있다고 표현하며 실제 서브 쿼리를 다른 하위 쿼리에서 (상당한 깊이까지) 중첩 할 수 있습니다. 서브 쿼리는 항상 괄호 안에 지정해야합니다.

서브 쿼리의 주요 장점은 다음과 같습니다.

  • 문의 각 부분을 분리 할 수 있도록 구조화 된 쿼리를 가능하게합니다.

  • 보통이면 복잡한 결합과 합집합을 필요로하는 작업을 수행하기위한 대안을 제공합니다.

  • 많은 사람들이 하위 쿼리를 복잡한 결합과 합집합보다 가독성을 느끼고 있습니다. 실제로 조기 SQL 인 '구조적 쿼리 언어 "를 호출하는 원래의 생각을 사람들에게 제공 한 것은 서브 쿼리의 혁신이었습니다.

SQL 표준으로 지정되어 MySQL에서 지원되는 서브 쿼리 구문에 대한 주요 사항을 설명 문의 예를 보여줍니다.

 DELETE FROM t1
 WHERE s11> ANY
  (SELECT COUNT (*) / * no hint * / FROM t2
   WHERE NOT EXISTS
    (SELECT * FROM t3
     WHERE ROW (5 * t2.s1,77) =
      (SELECT 50,11 * s1 FROM t4 UNION SELECT 50,77 FROM
       (SELECT * FROM t5) AS t5)));

서브 쿼리는 스칼라 (단일 값) 단일 행, 단일 열 또는 테이블 (하나 이상의 컬럼의 하나 이상의 행)을 반환 할 수 있습니다. 이들은 스칼라 열, 행 및 테이블 서브 쿼리라고합니다. 특정 유형의 결과를 반환 서브 쿼리는 종종 다음 섹션에 설명 된대로 특정 장소에서만 사용할 수 있습니다.

서브 쿼리를 사용할 수있는 문 유형에 대한 제한이 거의 없습니다. 서브 쿼리는 DISTINCT , GROUP BY , ORDER BY , LIMIT , 결합 인덱스 힌트 UNION 구조 구문, 코멘트, 함수 등의 일반 SELECT 에 포함 할 수있는 많은 키워드 나 구를 포함 할 수 있습니다.

서브 쿼리의 외부 문은 SELECT , INSERT , UPDATE , DELETE , SET , DO 중에서도 괜찮습니다.

MySQL에서 테이블을 변경하고, 하위 쿼리 같은 테이블에서 선택 할 수 없습니다. 이것은 DELETE , INSERT , REPLACE , UPDATE , LOAD DATA INFILE (서브 쿼리는 SET 절에서 사용할 수 있으므로) 등의 문에 적용됩니다.

최적화 프로그램이 서브 쿼리의 처리 방법은 섹션 8.2.1.18 "서브 쿼리의 최적화" 를 참조하십시오. 서브 쿼리의 사용 제한에 대한 설명 (특정 형식의 서브 쿼리 구문의 성능 문제를 포함)에 대해서는 섹션 D.4 "서브 쿼리 제한" 을 참조하십시오.

서울시 강남구 영동대로 602 6층
TEL: 02-6061-0006  /  E: csr@mysqlkorea.com
주식회사 이노클러스터  등록번호 : 727-86-02261
Copyright © innocluster Co. ltd. all rights reserved