티스토리 뷰
1. FROM
테이블이 존재하는지 USER가 해당 테이블에 대한 SELECT 권한이 있는지 먼저 체크한다. 만약 JOIN절이 존재한다면, JOIN을 먼저 수행한다음 FROM절을 수행한다.
2. WHERE
JOIN 혹은 FROM 절에서 가져온 테이블에서 조건에 맞는 ROW 만을 가져온다.
3. GROUP BY
명시한 컬럼들을 그룹화하며, 집계함수를 이용할 때 주로 사용한다.
4. HAVING
GROUP BY 절이 존재한다면 다음으로 HAVING 절을 수행한다. WHERE 절과 마찬가지로 조건에 맞는 ROW를 가져온다.
WHERE절은 테이블 상의 모든 필드에 조건에 두지만, HAVING은 GROUP BY에 의해 그룹화된 결과에 대해 조건을 준다.
--WHERE 절 사용
SELECT department, salary
FROM employees
WHERE salary> 2000;
--HAVING절 사용
SELECT department, AVG(salary) as avg_salary
FROM employees
GROUP BY department
HAVING AVG(salary) > 50000;
5. SELECT
가져온 데이터에서 어떤 행을 출력할지 선택한다.
6. DISTINCT
중복행을 필터링해서 고유한 행만을 반환한다.
7. ORDER BY
특정 열을 기준으로 오름차순 또는 내림차순 정렬한다.
* 거의 마지막에 실행되므로 SELECT 절에서 ALIAS를 준 컬럼이 있다면 ORDER BY 절에서 사용 가능하다.
8. LIMIT
LIMIT 내에 속하는 행만 표시하도록 제한한다. 이전에 평가된 많은 행 중 특정 행만 LIMIT하는 것은 효율적이지 않으므로 권장되지 않는다.
참조
https://www.geeksforgeeks.org/order-of-execution-of-sql-queries/
'Programming > SQL' 카테고리의 다른 글
[Oracle] Spring, Mybatis에서 대량 데이터 INSERT 수행. multirow, 다건 삽입 수행하기 (0) | 2023.07.12 |
---|---|
iBatis/Mybatis 동적쿼리 요류해결 - 캐시 비활성화 (0) | 2023.01.18 |
Mybatis/ibatis java.lang.IndexOutOfBoundsException 에러 해결 (0) | 2023.01.03 |
[오라클] NVL, 집계함수(AVG) 함께 사용시 주의사항 (0) | 2022.12.01 |
[Oracle] ORA-00913: 값의 수가 너무 많습니다(too many values) (0) | 2022.09.19 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 인턴
- JVM
- 백준
- 데이터베이스
- C
- 부트스트랩
- 스프링
- 프로그래머스
- C++
- Thymeleaf
- SQL
- 오라클
- 넥사크로
- HeidiSQL
- CSS
- CS
- JSP
- 오류
- Open API
- 개발용어
- 네트워크
- 환경설정
- Java
- svn
- 스프링부트
- 이클립스
- 국비교육
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
글 보관함