K 개발자
부속질의 본문
부속질의
SQL 문 내에 또 다른 SQL 문을 작성하는 것을 부속질의subquery라고 한다.
부속질의는 질의가 중첩되어 있다는 의미에서 중첩질의nested query라고도 한다.
부속질의 간에는 상하 관계가 있으며, 실행 순서는 하위 부속질의를 먼저 실행하고 그 결과를 이용하여 상위 부속질의를 실행한다.
반면 상관 부속질의correlated subquery는 상위 부속질의의 투플을 이용하여 하위 부속질의를 계산한다.
즉 상위 부속질의와 하위 부속질의가 독립적이지 않고 서로 관련을 맺고 있다.
연습문제
-- 가장 비싼 도서의 이름을 보이시오.
SELECT bookname
FROM Book
WHERE price = (
SELECT MAX(price)
FROM Book);
-- 도서를 구매한 적이 있는 고객의 이름을 검색하시오.
SELECT name
FROM Customer
WHERE custid IN (
SELECT custid
FROM Orders);
-- '대한미디어'에서 출판한 도서를 구매한 고객의 이름을 보이시오.
SELECT name
FROM Customer
WHERE custid IN (
SELECT custid
FROM Orders
WHERE bookid IN (
SELECT bookid
FROM Book
WHERE publisher = '대한미디어'));
-- 출판사별로 출판사의 평균 도서 가격보다 비싼 도서를 구하시오.
SELECT b1.bookname
FROM Book b1
WHERE b1.price > (
SELECT avg(b2.price)
FROM Book b2
WHERE b2.publisher = b1.publisher);
'데이터베이스 > Oracle SQL' 카테고리의 다른 글
EXISTS (0) | 2021.08.22 |
---|---|
집합연산 (0) | 2021.08.22 |
조인 (0) | 2021.08.22 |
GROUP BY 문 (0) | 2021.08.22 |
집계 함수 (0) | 2021.08.22 |
Comments