서브쿼리의 일종인 상관 서브쿼리를 EXISTS 술어로 조합시켜서 서브쿼리를 사용하는 방법에 관해 알아보겠다
EXISTS
EXISTS (SELECT명령)
EXISTS를 사용하면 서브쿼리가 반환하는 결괏값이 있는지를 조사할 수 있다
sample551에는 1에서 5까지의 데이터가 저장되어 있다. 한편 sample552에는 3과 5가 저장되어 있고 sample551의 a열은 문자열형이지만 값은 모두 NULL이다.
행이 존재하지 않는 상태가 참이 되게 하려면 NOT EXISTS를 사용하면 된다
UPDATE 명령 뿐만 아니라 SELECT, DELETE 명령도 사용가능하다
UPDATE 명령에서 WHERE 구에 괄호로 묶은 부분이 서브쿼리(자식)이고 UPDATE 명령이 부모이다. 부모 명령과 자식인 서브쿼리가 특정 관계를 맺는 것을 '상관 서브쿼리'라고 부른다.
만약 no2와 no가 같은 열이라면 동작이 실행될까?
실행이 안된다.
이렇게 비교하고자 하는 열앞에 테이블명을 적어주면 동작이 가능하다
IN
열명 IN(집합)
IN에서는 오른쪽에 집합을 지정한다. 왼쪽에 지정된 값과 같은 값이 집합 안에 존재하면 참을 반환한다.
상수 리스트 부분을 서브쿼리로도 지정할 수 있다
NOT IN도 가능하다