SQL[실행 순서]
SQL
SQL은 기본적으로 쿼리문을 통해 실행됩니다.
이런 쿼리문에는 여러가지 명령어 들이 존재하는데, 기본적으로 SELECT, FROM, WHERE이 있고 부가적으로 WHERE, GROUP, HAVING 등등 여러가지 명령어들이 존재합니다.
이런 명령어들은 순서에 따라 순차적으로 실행이 됩니다.
실행순서 [ 프로그래머스 SQL 고득점 GIT 문제 ]
1
2
3
4
5
6
SELECT ANIMAL.NAME, COUNT(ANIMAL.NAME) AS COUNT
FROM ANIMAL_INS ANIMAL
WHERE ANIMAL.NAME IS NOT NULL
GROUP BY ANIMAL.NAME
HAVING COUNT(ANIMAL.NAME) >= 2
ORDER BY ANIMAL.NAME ASC
앞서 예시로 이런 쿼리문이 있다고 가정하겠습니다. 쿼리문대로 순차적으로 실행하면 SELECT, FROM … 이런 순서로 실행이 될 겁니다.
하지만 이렇게 실행되지 않고, SQL만의 실행순서로 실행됩니다.
1. FROM
쿼리의 대상이 되는 테이블이나 뷰를 지정합니다.
2. JOIN
필요한 경우 다른 테이블과 조인하여 결과를 생성합니다.
여기서 조인은 집합이라고 생각하면 됩니다.
3. WHERE
조건을 설정하여 이 조건을 기반으로 행을 필터링합니다.
if문 이라고 생각하면 편합니다.
4. GROUP BY
그룹화할 기준을 지정합니다.
5. HAVING
GROUP BY로 그룹화한 결과에 대한 조건을 지정합니다.
6. SECLCT
출력할 열을 선택합니다.
7. DISTINCT
결과에서 중복된 값들을 제거합니다.
8. ORDER BY
결과를 정렬합니다.
9. LIMIT/OFFSET
필요한 경우, 결과수를 제한하거나 건너뜁니다.
즉 한마디로 FROM절에서 지정된 테이블이나 뷰를 기준으로 데이터를 가져와서 JOIN이 있는 경우 JOIN을 통해 다른 테이블과 조인하고, WHERE절에서 정해진 조건을 통해 필터링을 거칩니다.
그런 다음 GROUP BY과 HAVING를 통해 데이터를 그룹화하고 조건을 적용합니다.
그리고 나서 SELECT 절에서 출력할 열을 선택하고, 선택된 열에서 DISTINCT를 통해 중복을 제거합니다.
그리고 ORDER BY로 정렬을하고 LIMIT/OFFSET이 적용이 되어있다면 출력할 결과수를 제한합니다.
이처럼 SQL은 이런 순서를 순차적으로 실행하여 결과를 도출합니다.