서브쿼리는 명령문 안에 지정하는 하부 SELECT 명령어이다. 주로 WHERE에 사용되며, 좀 더 유연하게 쿼리문을 사용할 수 있도록 도와준다.
DELETE FROM table명 WHERE 조건문을포함한서브쿼리문;
SELECT 서브쿼리가능 FROM 서브쿼리가능 WHERE 서브쿼리가능
SELECT 는 여러 구간에서 서브쿼리가 가능하다.
INSERT INTO table명 VALUES (서브쿼리가능)
INSERT는 VALUES에 서브쿼리가 가능한데, 계산된 값을 넣거나, 테이블의 값을 복사해서 넣을 수 있다.
서브쿼리는 쿼리문을 상당히 유연하게 만들어주는 방식이다.
하지만 사용에 유의해야 하는데, 성능상 기본 쿼리문보다 서브 쿼리를 사용한 쿼리문이 시간이 더 많이 걸리기 때문이다. 만약 기본 쿼리문에 조건을 추가하는 방식으로 처리가 가능하다면, 서브 쿼리문은 피하는 것이 좋다.