DataBase

[SQLD] SQL절 (SELECT, FROM, WHERE, GRUOP BY, HAVING, ORDER BY)

DH_0518 2025. 2. 25. 22:38

 

 

SELECT

 

 

SELECT 문의 구조

  • 총 6개의 절로 구성되어있고, 각 절의 순서대로 작성해야 한다
    1. SELECT (DISTINC) * / 컬럼명 / 표현식
    2. FROM 테이블명/뷰명
    3. WHERE 조건
    4. GROUP BY 그룹화 기준 컬럼명
    5. HAVING 그룹핑 필터링 조건
    6. ORDER BY 정렬기준 컬럼명
  • 별칭을 만들기 위해 AS를 사용할 수 있다
    • 생략 가능하다
    • 별칭은 결과에만 적용되며, 실제 DB 테이블에는 영향이 없다
    • HAVING이나 WHERE 절에서는 사용할 수 없다
    • 예약어를 사용할 수 없다
    • '오라클'에서 테이블 별칭을 명시할 때 AS를 사용할 수 없다
  • DISTINCT는 중복된 데이터가 있는 경우, 1건으로 처리해서 출력한다

 

 

SELECT 문의 내부 실행 순서

  • SELECT 문의 내부 쿼리 실행 순서는 작성 순서와 다르다
    1. FROM                -> FROM 절에서 테이블을 확인한다
    2. WHERE             -> 이후 테이블에서 조건에 맞는 데이터만 필터링한다
    3. GROUP BY       -> 필터링한 데이터를 그룹화 한다
    4. HAVING            -> 그룹화된 결과에 대해 다시 필터링을 진행한다
    5. SELECT            -> 그 결과에서 SELECT 절로 선택한 값들만 추려낸다
    6. ORDER BY       -> 마지막으로 ORDER BY 절을 보고 데이터를 정렬한다

 

 

 

 

 

 

 

FROM

 

 

 

FROM 절

  • 데이터를 불러올 '테이블 명'이나 '뷰 명'을 전달
  • 컴마로 구분하여 여러 테이블을 전달할 수 있다
    • 이때 JOIN 조건을 명시하지 않으면, '카테시안 곱'을 사용하여 모든 가능한 조합을 생성한다
  • 테이블을 전달할 때 별칭을 사용할 수 있다 (ORACLE 제외)
    • 별칭 사용시, 해당 테이블을 참조하려면 반드시 별칭을 사용해야한다
  • 생략할 수 없다

 

 

 

 

 

 

 

WHERE

 

 

WHERE

  • 집계함수를 사용할 수 없다. HAVING절에서 사용하도록 하자

 

 

 

 

 

 

 

 

 

GROUP BY

 

 

 

GROUP BY

  • GROUP BY와 HAVING의 순서는 서로 바꿀 수 있으나, 보통 사용하지 않는다
  • GROUP BY는 NULL도 집계에 포함한다

 

 

 

 

 

 

 

 

 

ORDER BY

 

 

 

ORDER BY

  • 'ORDER BY' 절에는, SELECT 절에서 선택하지 않은 컬럼으로도 정렬할 수 있다
    • 단, FROM 절에서 선택한 테이블 내에 존재하는 컬럼으로만 정렬할 수 있다
    • SQL 내부 실행 순서에 의하면 'FROM -> SELECT -> ORDER BY' 순으로 실행되므로, FROM에 있는 데이터를 모두 들고 있기에 이런 식으로 사용이 가능한 것이다

 

 

 

 

 

 

 

 

 

 

 

 

 

Reference

 

[SQLD] 2024년 개정 SQLD 합격 후기, SQLD 개정판 개념정리 pdf 공유

[ 목차 ]1. SQLD 시험• 정보• 유의사항• 시험 후기2. 공부 방법• 교재 및 강의• 추천 강의 및 자료#. 개념정리 PDF 공유 SQLD 합격을 하게 되어, 준비하는 분들에게 조금이나마 도움이 될까해서

bruders.tistory.com