6.4 존재검사

  모든 부질의는 그 질의를 포함하는 질의에 대한 입력으로 사용된다. 지금까지는 리턴값을 다른 값과 비교하는 것에 다루어 왔다.

즉, WHERE 절을 만족하는 레코드만이 선택되었다. SQL에서는 레코드에 포함된 값에 상관없이 레코드가 존재하기기만 하면

참이 되도록 하는 기능을 제공한다. EXISTS와 NOT EXISTS 인 경우는 부질의가 리턴하는 레코드가 있으면 참이고 NOT EXISTS는

없으면 참이다(NULL 을 포함한 레코드도 레코드가 있는 것으로 간주한다).

 

존재검사(existence tests)는 개념적으로 간단하지만 매우 유용하다. 가장 널리 쓰이는 경우는 상관부질의(correlated subquery)에서의 사용이다.

 

 

6.5 상관부질의

 

  지금까지의 예제에서는 부질의가 먼저 계산되고 나서  그 다음에 그 결과가 주질의의 입력으로 사용되었다.

SQL에서는 주질의기 매번 레코드에 접근할 때마다 부질의가 계산되는 경우가 있다. 그러한 부질의를 상관부질의(correlated subquery)라고

한다.

 

예를 들어 어떤 과목도 수강신청하지 않은 학생의 이름을 알고 싶을 경우 다음과 같이 질의를 표현할 수 있다.

경축! 아무것도 안하여 에스천사게임즈가 새로운 모습으로 재오픈 하였습니다.
어린이용이며, 설치가 필요없는 브라우저 게임입니다.
https://s1004games.com

SELECT student, student_name
    FROM students S
    WHERE NOT EXISTS
        (SELECT *
            FROM enrolls E
            WHERE E.student = S.student);

 지금까지와는 달리 괄호안에 있는 부질의는 한 번만 계산되지 않고 STUDENTS 테이블의 각 레코드에 대해 한 번씩 계산된다.

그때마다 student의 앖이 ENROLLS에 있는 모든 레코드의 student값과 비교된다.(E.student = S.student가 있는 WHERE 절에서).

두 student가 일치될 때마다 ENROLLS 로부터의 레코드가 결과 테이블에 추가된다. NOT EXISTS는 부질의에 의해서 리턴된

테이블이 빈 것이면 참이고 그렇지 않으면 거짓이기 때문에 하라라도 일치하는 student가 있으면 주질의에 대한 결과가 될 수 없고

일치되는 것이 하나도 없는 student 만이 결과 테이블에 들어간다.

 

상관부질의는 ANY, ALL, EXISTS, 그리고 비교 연산자와 함께 사용될 수 있다.

 

 

 

 

 

 

 

 

본 웹사이트는 광고를 포함하고 있습니다.
광고 클릭에서 발생하는 수익금은 모두 웹사이트 서버의 유지 및 관리, 그리고 기술 콘텐츠 향상을 위해 쓰여집니다.
번호 제목 글쓴이 날짜 조회 수
공지 오라클 기본 샘플 데이터베이스 졸리운_곰 2014.01.02 86957
공지 [SQL컨셉] 서적 "SQL컨셉"의 샘플 데이타 베이스 SAMPLE DATABASE of ORACLE 가을의 곰을... 2013.02.10 79225
공지 [G_SQL] Sample Database 가을의 곰을... 2012.05.20 95965
18 REDIS 소개, 설치, 데이터 타입 테스트 file 졸리운_곰 2016.05.29 1442
17 FlumeNG + Kafka Plugin (플럼+카프카 플러그인) file 졸리운_곰 2016.05.29 1446
16 flume 설치 해보고 로그 수집하기 file 졸리운_곰 2016.05.29 1429
15 Flume NG version 설치 및 로그 수집 file 졸리운_곰 2016.05.29 1685
14 Flume(플럼) 참고 사이트 정리 졸리운_곰 2016.05.29 1838
13 Flume #2-2 간단한 사용예제 졸리운_곰 2016.05.29 1389
12 Flume #2-1 간단한 사용예제 졸리운_곰 2016.05.29 1440
11 Flume #1 소개 졸리운_곰 2016.05.29 1591
10 [Flume] Flume 설치부터 예제까지... 졸리운_곰 2016.05.29 1066
9 Running Apache Kafka on Windows without Cygwin file 졸리운_곰 2016.05.28 1650
8 Setting Up and Running Apache Kafka on Windows OS file 졸리운_곰 2016.05.28 1861
7 Apache Kafka 졸리운_곰 2016.05.28 1641
6 실시간 처리를 위한 분산 메시징 시스템 카프카(Kafka) file 졸리운_곰 2016.05.28 1890
5 Apache Kafka] 5. Zookeeper 트리 분석 2 졸리운_곰 2016.05.28 1388
4 Apache Kafka] 4. 모니터링하기 file 졸리운_곰 2016.05.28 1476
3 [Apache Kafka] 3. Producer/Consumer 구현하기 졸리운_곰 2016.05.28 1390
2 [apche kafka] Zookeeper 클러스터 구축 file 졸리운_곰 2016.05.28 1465
1 Kafka의 기본 구성 요소와 동작 file 졸리운_곰 2016.05.28 1946
대표 김성준 주소 : 경기 용인 분당수지 U타워 등록번호 : 142-07-27414
통신판매업 신고 : 제2012-용인수지-0185호 출판업 신고 : 수지구청 제 123호 개인정보보호최고책임자 : 김성준 sjkim70@stechstar.com
대표전화 : 010-4589-2193 [fax] 02-6280-1294 COPYRIGHT(C) stechstar.com ALL RIGHTS RESERVED