• 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.1 스칼라 피연산자로 서브 쿼리

가장 간단한 형태의 서브 쿼리는 단일 값을 반환 스칼라 서브 쿼리입니다. 스칼라 서브 쿼리는 간단한 피연산자이기 때문에 단일 컬럼 값 또는 리터럴이 정당 곳이면 거의 어디에서나 사용할 수 있으며, 데이터 유형, 길이, NULL 할 수있는 표시 등의 모든 피연산자가 가지고 있는 특성을 가진 것을 기대할 수 있습니다. 예 :

 CREATE TABLE t1 (s1 INT, s2 CHAR (5) NOT NULL);
 INSERT INTO t1 VALUES (100, 'abcde');
 SELECT (SELECT s2 FROM t1);

이 SELECT 내의 서브 쿼리는 CHAR 데이터 유형 5의 길이, CREATE TABLE 시점에서 유효한 기본에 동일한 캐릭터 셋과 콜레 션 및 컬럼의 값을 NULL 할 수있는 표시를 가진 단일 값 ( 'abcde' )을 반환합니다. 서브 쿼리 결과가 비어 있으면 그 결과는 NULL 이되기 때문에 스칼라 서브 쿼리에 의해 선택된 값 NULL 가능성은 복사되지 않습니다. 지금 나타낸 서브 쿼리에서 t1 이 비어있을 경우, s2 가 NOT NULL 임에도 불구하고 그 결과는 NULL 이됩니다.

스칼라 서브 쿼리를 사용할 수없는 상황이 일부 존재합니다. 문에서 리터럴 값 만 허용되는 경우 하위 쿼리를 사용할 수 없습니다. 예를 들어, LIMIT 리터럴 정수의 인수가 필요하며, LOAD DATA INFILE 리터럴 문자열의 파일 이름이 필요합니다. 서브 쿼리를 사용하여 이러한 값을 지정할 수 없습니다.

다음의 각 섹션에서 다소 간소 한 구조 구문 (SELECT column1 FROM t1) 가 포함 된 예를 볼 때 훨씬 다양하며 복잡한 구조 구문을 포함한 자신의 코드가 있다고 생각 바랍니다.

다음 두 테이블을 만들려고합니다.

 CREATE TABLE t1 (s1 INT);
 INSERT INTO t1 VALUES (1);
 CREATE TABLE t2 (s1 INT);
 INSERT INTO t2 VALUES (2);

다음은 SELECT 를 실행합니다.

 SELECT (SELECT s1 FROM t2) FROM t1;

t2 는 2 의 값을 가지는 컬럼 s1 이 포함 된 행이 존재하기 때문에 그 결과는 2 가됩니다.

스칼라 서브 쿼리 표현식의 일부가 될 수 있지만, 그 서브 쿼리가 함수에 인수를 제공하는 피연산자 인 경우에도 괄호를 잊지 마세요. 예 :

 SELECT UPPER ((SELECT s1 FROM t1)) FROM t2;


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