SQL subquery

hh_binvely·2024년 3월 17일
0

Part 03. SQL

목록 보기
11/11
post-thumbnail

sql subquery

  • 하나의 sql 문 안에 포함되어 있는 또 다른 sql문을 말한다.
  • 메인쿼리가 서브쿼리를 포함하는 종속적인 관계이다.
    ** 서브쿼리는 메인쿼리의 칼럼 사용 가틍
    ** 메인쿼리는 서브쿼리의 칼럼 사용 불가

    사용 시 주의할 점

    * subquery는 괄호로 묶어서 사용
    * 단일 행 혹은 복수 행 비교 연산자와 함께 사용 가능
    * subquery 에서는 order by를 사용하지 않는다.

    종류

    scalar(스칼라) subquery - select 절에 사용
    inline(인라인) view - from 절에 사용
    * nested(중첩) subquery - where 절에 사용

1. scalar(스칼라) subquery

  • select 절에서 사용하는 서브쿼리
  • 결과는 하나의 column 이어야 한다.

    [ 생성 문법 ]

    select columns1, (select columns2 from table2 where condition)
    from table1
    where condition;

2. inline(인라인) view

  • from 절에서 사용하는 서브쿼리
  • 메인쿼리에서는 인라인 부에서 조회한 column만 사용가능하다.

    [ 생성 문법 ]

    select a.colun, b.column
    from table1.a, (select column1, column2, from table2) b
    where condition;

3. nested(중첩) subquery

  • where 절에서 사용하는 서브쿼리
    • single row - 하나의 열을 검색하는 서브쿼리
    • multiple row - 하나 이상의 열을 검색하는 서브쿼리, in, exists, any, ALL과 같이 사용됨
    • multiple column - 하나 이상의 행을 검색하는 서브쿼리,

    1) single row subquery

    * 서브쿼리가 비교연산자(=, >, >=, <. <=, <>, !=)와 사용되는 경우,
      서브쿼리의 검색 결과는 한 개의 결과값(row)을 가져야 한다. (두 개 이상인 경우 에러)
    select column_names
    from table_name
    where column_name = (select column_name
                         from table_name
    		       where condition)
    order by column_name;

4. multiple column Subquery (연관 서브쿼리)

  • 서브쿼리 내에 메인쿼리 컬럼이 같이 사용되는 경우

    생성 문법

    select columnn_names
    from tablename a
    where (a.column1, a.column2, ...) in ( select b.column1, b.column2, ...)
    					from tablename b
    					where a.column_name = b.column_name)
    order by column_names;

0개의 댓글

관련 채용 정보