less than 1 minute read

SQL 문장실행순서란?

  • SQL 순서는 논리적으로 이해하면 좋을거 같다.
  • 실제 옵티마이저가 쿼리변환을해서 실행하는 순서는 다를거라 생각! (예 :여러 쿼리 조인 사용 시)
  • 쿼리 순서는 옵티마이저가 syntax,semantic 오류를 검증하는 순서이기도 함. (예 : 테이블에 없는 쿼리를 where 절에서 호출한 경우 )

    1. SQL 6개의 구문

  • SELECT 문장은 총 6개의 절로 구성될 수 있다.

      1. SELECT 컬럼명(*)  
      2.   FROM 테이블    
      3.  WHERE 컬럼명 = 조건
      4.  GROUP BY 컬렴명 
      5. HAVING 조건식
      6.  ORDER BY 컬럼명
    

2. 문장실행순서

flowchart LR
2.FROM-->3.WHERE-->4.GROUPBY-->5.HAVING-->6.ORDERBY-->1.SELECT;

FROM

  • 대상 테이블을 참조한다.

WHERE

  • 대상테이블에 해당하는 데이터가 아닌것은 제거한다. (인덱스 엑세스,필터는 추후 작성)

GROUP BY

  • 선언한 컬럼에 해당하는 행들을 그룹화한다.

HAVING

  • 결과집합의 행에 대해서 조건이 적용된다

SELECT

  • 조회 된 컬럼의 값을 보여준다

ORDER BY

  • 데이터를 정렬한다.

오류 예시

  • A라는 테이블에 이름, 나이라는 항목이 있다.
  • WHERE 절에 다른 컬럼을 입력하면 오류 발생 테이블 A
이름 나이
사슴 22
돼지 33
SELECT * FROM A WHERE 몸무게 = 33 ;
 오류 발생!!

Updated: