- 9장 - 서브쿼리2024년 09월 20일
- 31514
- 작성자
- 2024.09.20.:15
SQL 구문이 실행을 완료한 후 데이터베이스 서버가 서브쿼리 결과에 할당된 메모리를 해제한다.
비상관 서브쿼리 - 독립적으로 실행되는 서브쿼리
select city_id, city from city where country_id <> (select country_id from country where country = 'India');
상관 서브쿼리 - 하나 이상의 열을 참조하는 포함 구문에 의존적인 서브쿼리
따라서 포함 구문이 실행되기 전까지 실행되지 않는다.
select c.first_name, c.last_name from customer c where 20 = (select count(*) from rental r where r.customer_id = c.customer_id);
주의할 점은 포함 쿼리의 각 행에 대해 한 번씩 실행되므로, 포함 쿼리가 많은 행을 반환할 경우 성능 문제가 발생할 수 있다.
상관 서브쿼리는 다음과 같이 update, delete, insert 문에서도 자주 사용된다.
update customer c set c.last_update = (select max(r.rental_date) from rental r where r.customer_id = c.customer_id);
서브쿼리를 select, from, where 절 뿐만 아니라 having, order by 절에서도 사용할 수 있다.
select a.actor_id, a.first_name, a.last_name from actor a order by (select count(*) from film_actor fa where fa.actor_id = a.actor_id) desc;
'Book > Learning SQL' 카테고리의 다른 글
13장 - 인덱스와 제약조건 (0) 2024.09.24 12장 - 트랜잭션 (0) 2024.09.23 8장 - 그룹화와 집계 (0) 2024.09.19 6장 - 집합 연산자 (0) 2024.09.12 4장 - 필터링 (0) 2024.09.11 다음글이전글이전 글이 없습니다.댓글
스킨 업데이트 안내
현재 이용하고 계신 스킨의 버전보다 더 높은 최신 버전이 감지 되었습니다. 최신버전 스킨 파일을 다운로드 받을 수 있는 페이지로 이동하시겠습니까?
("아니오" 를 선택할 시 30일 동안 최신 버전이 감지되어도 모달 창이 표시되지 않습니다.)