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 86317
공지 [SQL컨셉] 서적 "SQL컨셉"의 샘플 데이타 베이스 SAMPLE DATABASE of ORACLE 가을의 곰을... 2013.02.10 78774
공지 [G_SQL] Sample Database 가을의 곰을... 2012.05.20 95528
44 [G_SQL] p.177 : NOT EXISTS를 이용한 상관부질의 file 가을의 곰을... 2012.05.30 2833
» [G_SQL] 6.4 존재검사 / 6.5 상관부질의 가을의 곰을... 2012.05.30 1861
42 [G_SQL] p.172 : ALL을 사용한 부질의 file 가을의 곰을... 2012.05.29 1515
41 [G_SQL] p.170 : ANY를 사용한 부질의 file 가을의 곰을... 2012.05.29 1672
40 [G_SQL] p.169 : ANY를 사용한 부질의 file 가을의 곰을... 2012.05.29 1818
39 [G_SQL] p.167 : ANY와 ALL의 사용 가을의 곰을... 2012.05.29 1681
38 [G_SQL] p.166 : '>'를 사용한 부질의 file 가을의 곰을... 2012.05.28 1868
37 [G_SQL] p.165 : '<'를 사용한 부질의 file 가을의 곰을... 2012.05.28 1707
36 [G_SQL] p.162 : 질의 내에서의 질의 : 부질의 file 가을의 곰을... 2012.05.28 1562
35 [G_SQL] p.159 Chapter06 : 질의 내에서 질의 : 부질의 가을의 곰을... 2012.05.28 2477
34 [G_SQL] p.156 : 조인에서 GROUP BY를 사용하기 file 가을의 곰을... 2012.05.27 2380
33 [G_SQL] p.154 : 조인에서 GROUP BY를 사용하기 file 가을의 곰을... 2012.05.27 1287
32 [G_SQL] p.152 : 조인에서 GROUP BY를 사용하기 file 가을의 곰을... 2012.05.27 1459
31 [G_SQL] p.151 : 5.10 조인에서 Group By 절의 사용 가을의 곰을... 2012.05.27 1410
30 [기본부터 생각해보는] 정보 조직화 데이터 베이스 02 (데이터베이스 설계 원리) 가을의 곰 2012.05.27 2950
29 [G_SQL] p.149 : 다섯 개의 테이블에서 조인하기 file 가을의 곰을... 2012.05.26 1399
28 [기본부터 생각해보는] 정보 조직화 데이터 베이스 01 file 가을의 곰을... 2012.05.25 1835
27 [G_SQL] p.145 : 네 개의 테이블에서 조인하기 file 가을의 곰을... 2012.05.24 1513
26 [G_SQL] p.145 : 네 개의 테이블에서 조인하기 file 가을의 곰을... 2012.05.24 1314
25 [G_SQL] p.141 : 세 개의 테이블에서 조인하기 file 가을의 곰을... 2012.05.24 1219
대표 김성준 주소 : 경기 용인 분당수지 U타워 등록번호 : 142-07-27414
통신판매업 신고 : 제2012-용인수지-0185호 출판업 신고 : 수지구청 제 123호 개인정보보호최고책임자 : 김성준 sjkim70@stechstar.com
대표전화 : 010-4589-2193 [fax] 02-6280-1294 COPYRIGHT(C) stechstar.com ALL RIGHTS RESERVED