데이터베이스_SQL_02

하이솝·어제

데이터베이스

목록 보기
10/10

Subqureies

select * from t1 where col1 = (select col1 from t2);

  • () 바깥에 있는 쿼리를 외부 쿼리(outer query, main query(주 질의)) 라고 함
  • () 내부에 있는 쿼리를 서브 쿼리(sub query(부속 질의)) 라고 함

부속질의의 종류

중첩질의

  • 위치: WHERE
  • 영문 및 동의어: nested subquery, predicate subquery
  • WHERE 절에 술어와 같이 사용되며, 결과를 한정시키기 위해 사용됨
  • 상관 혹은 비상관 형태
// 비상관 형태: 서브 쿼리가 외부 쿼리의 값을 참조하지 않음
SELECT * FROM t1
WHERE col1 = (SELECT MAX(col1) FROM t2)

// 상관 형태: 서브 쿼리가 외부 쿼리의 값을 참조함
SELECT * FROM t1
WHERE col1 = (SELECT col1 FROM t2 WHERE t2.id = t1.id)

스칼라 부속질의

  • 위치: SELECT
  • 영문 및 동의어: scalar subquery
  • SELECT 절에서 사용되며 단일 값을 반환하기 때문에 스칼라 부속질의라고 함

인라인 뷰

  • 위치: FROM
  • 영문 및 동의어: inline view, table subquery
  • FROM 절에서 결과를 뷰(view) 형태로 반환하기 때문에 인라인 뷰라고 함

0개의 댓글