SubQuery : 서브쿼리, 부쿼리, 하위쿼리로 SQL내의 SQL을 말한다.
다양한 예제를 통해서 서브쿼리를 접해보자.
CREATE TABLE item(
id NUMBER PRIMARY KEY,
name VARCHAR2(100) NOT NULL,
maker VARCHAR2(100) NOT NULL,
price NUMBER NOT NULL
)
CREATE SEQUENCE item_seq;
INSERT INTO item(id,name,maker, price) VALUES(item_seq.nextval,'불닭볶음면', '삼양', 1500);
INSERT INTO item(id,name,maker, price) VALUES(item_seq.nextval,'진라면', '오뚜기', 1100);
INSERT INTO item(id,name,maker, price) VALUES(item_seq.nextval,'테라', '하이트진로', 1800);
INSERT INTO item(id,name,maker, price) VALUES(item_seq.nextval,'참이슬후레쉬', '하이트진로', 1300);
INSERT INTO item(id,name,maker, price) VALUES(item_seq.nextval,'열라면', '오뚜기', 1300);
SELECT * FROM item;
item table에 저장된 item 정보 중에서 최고가의 item name과 maker, price를 조회해라.
SELECT MAX(PRICE) FROM ITEM;
SELECT name,maker,price FROM item WHERE price=1800;
SELECT name,maker,price FROM item WHERE price=(SELECT MAX(PRICE) FROM ITEM);
전체 아이템 상품 중 상품의 평균가보다 높은 상품들 중 가장 낮은 가격을 가진 상품의 id, name,maker,price를 조회하라
SELECT AVG(PRICE) FROM ITEM
SELECT MIN(PRICE) FROM ITEM WHERE PRICE>(SELECT AVG(PRICE) FROM ITEM)
SELECT * FROM ITEM
WHERE PRICE= (
SELECT MIN(PRICE) FROM ITEM
WHERE PRICE>(SELECT AVG(PRICE) FROM ITEM)
)
maker가 하이트진로인 item 중 가장 낮은 price의 item name과 price를 조회
SELECT MIN(PRICE) FROM ITEM WHERE maker='하이트진로';
SELECT PRICE FROM ITEM WHERE MAKER='하이트진로';
SELECT name,price FROM ITEM
WHERE MAKER='하이트진로' AND PRICE= (
SELECT MIN(PRICE) FROM ITEM
WHERE maker='하이트진로'
)