SELECT
SELECT 문의 구조
- 총 6개의 절로 구성되어있고, 각 절의 순서대로 작성해야 한다
- SELECT (DISTINC) * / 컬럼명 / 표현식
- FROM 테이블명/뷰명
- WHERE 조건
- GROUP BY 그룹화 기준 컬럼명
- HAVING 그룹핑 필터링 조건
- ORDER BY 정렬기준 컬럼명
- 별칭을 만들기 위해 AS를 사용할 수 있다
- 생략 가능하다
- 별칭은 결과에만 적용되며, 실제 DB 테이블에는 영향이 없다
- HAVING이나 WHERE 절에서는 사용할 수 없다
- 예약어를 사용할 수 없다
- '오라클'에서 테이블 별칭을 명시할 때 AS를 사용할 수 없다
- DISTINCT는 중복된 데이터가 있는 경우, 1건으로 처리해서 출력한다
SELECT 문의 내부 실행 순서
- SELECT 문의 내부 쿼리 실행 순서는 작성 순서와 다르다
- FROM -> FROM 절에서 테이블을 확인한다
- WHERE -> 이후 테이블에서 조건에 맞는 데이터만 필터링한다
- GROUP BY -> 필터링한 데이터를 그룹화 한다
- HAVING -> 그룹화된 결과에 대해 다시 필터링을 진행한다
- SELECT -> 그 결과에서 SELECT 절로 선택한 값들만 추려낸다
- 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 개정판 개념정리 pdf: https://bruders.tistory.com/173#google_vignette
[SQLD] 2024년 개정 SQLD 합격 후기, SQLD 개정판 개념정리 pdf 공유
[ 목차 ]1. SQLD 시험• 정보• 유의사항• 시험 후기2. 공부 방법• 교재 및 강의• 추천 강의 및 자료#. 개념정리 PDF 공유 SQLD 합격을 하게 되어, 준비하는 분들에게 조금이나마 도움이 될까해서
bruders.tistory.com