SQL 기본 및 활용
🗄️ SQLSQL 활용★★★★★거의 매회

서브쿼리 — 단일행·다중행·다중열

한 건이 돌아오면 =·> 로 비교하고, 여러 건이면 IN·ANY·ALL·EXISTS 를 써야 한다.

단일행 서브쿼리다중행 서브쿼리INANYALLEXISTS

왜 그런지까지

단일행 서브쿼리에 여러 건이 돌아오면 오류가 난다. 그래서 결과가 여럿일 수 있으면 IN 이나 ANY/ALL 을 쓴다.

ANY 는 하나라도 만족하면 참(> ANY 는 최솟값보다 크면 참), ALL 은 모두 만족해야 참(> ALL 은 최댓값보다 커야 참)이다. EXISTS 는 값을 비교하지 않고 '행이 있는가'만 보므로, 한 건만 찾으면 바로 멈춘다.

돌려 보기

ANY 와 ALL 을 나란히 — 어느 쪽이 더 많이 걸리는가

헷갈리는 것

> ANY vs > ALL

> ANY 는 목록의 최솟값보다 크면 참이고, > ALL 은 목록의 최댓값보다 커야 참이다.

IN vs EXISTS

IN 은 서브쿼리 결과를 값 목록으로 만들어 비교하고, EXISTS 는 행이 있는지만 확인해 하나 찾으면 멈춘다.

확인 문제

넣어 두면 오늘 · 1일 · 3일 · 7일 · 14일 · 30일 간격으로 다시 물어봅니다