SUBQUERY
하나의 select만으로 원하는 데이터를 조회할 수 없을 때 사용하는 방법으로 여러개의 select문장을 하나로 합쳐 하나의 실행 가능한 SQL 문장으로 만들어서 원하는 데이터를 조회할 수 있다. -> 하나의 SQL문장 안에 또 다른 SQL문장이 들어간다.
SQL> SELECT select_list
FROM 테이블
WHERE 컬럼명 연산자(SELECT selct_list
FROM 테이블);
| 종류 | 설명 | 사용 가능 연산자 |
|---|---|---|
| 단일행 서브쿼리 | 서브쿼리 실행 결과가 한 개의 행을 반환한다. | =, >, >=, <,<=, != 와 같은 비교 연산자 |
| 복수행 서브쿼리 | 서브쿼리 실행 결과가 복수 개의 행을 반환한다. | IN,ANY,ALL, EXIST 연산자 |
| 종류 | 설명 |
|---|---|
| IN | 메인 쿼리와 서브쿼리가 IN연산자로 비교한다. 서브쿼리 결과값이 복수개인 경우에 사용된다. |
| ANY | ANY 연산자는 복수행 서브쿼리에서 > 또는 < 같은 비교 연산자를 사용하고자 할 때 사용되며 검색 조건이 하나라도 일치하면 참이다. |
| ALL | ALL 연산자는 복수행 서브쿼리에서 > 또는 < 같은 비교 연산자를 사용하고자 할 때 사용되며 검색 조건의 모든 값이 일치하면 참이다. |
| EXIST | EXSIT 서브 쿼리의 반환값이 존재하면 메인 쿼리를 실행하고 반환값이 없으면 메인 쿼리를 실행하지 않는다. |