SQLD WHERE, GROUP BY, HAVING, ORDER BY 절

Soondol·2024년 5월 13일

WHERE 절

  • 원하는 조건에 맞는 데이터만 조회하고 싶을 경우 사용
  • AND, OR로 조건 연결하여 여러 조건 동시 전달 가능
  • NULL 조회 시 IS NULL / IS NOT NULL 연산자 사용 (연산자로 조회 불가)
연산자 종류설명
=같은 조건을 검색
!=, <>같지 않은 조건을 검색
>큰 조건을 검색
>=크거나 같은 조건을 검색
<작은 조건을 검색
<=작거나 같은 조건을 검색
BETWEEN a AND bA와 B사이에 있는 범위 값을 모두 검색
IN(a,b,c)a이거나 b이거나 c인 조건을 검색
LIKE특정 패턴을 가지고 있는 조건을 검색
IS NULL / IS NOT NULLNull값을 검색 / Null이 아닌 값을 검색
A AND BA조건과 B조건을 모두 만족하는 값만 검색
A OR BA조건이나 B조건중 하나라도 만족하는 값을 검색
NOT AA가 아닌 모든 조건을 검색

문법

SELECT * | 컬럼명 | 표현식 FROM 테이블명 또는 뷰명 WHERE 조회할 데이터 조건

GROUP BY 절

  • 각 행을 특정 조건에 따라 그룹으로 분리하여 계산하도록 하는 구문식
  • 만약 그룹 연산에서 제외할 대상이 있다면 미리 WHERE 절에서 해당 행을 제외 (WHERE절이 GROUP BY절보다 먼저 수행됨)
  • GROUP BY절을 사용하면 데이터가 요약되므로 요약되기 전 데이터와 함께 출력할 수 없음

문법

SELECT * | 컬럼명 | 표현식
FROM 테이블명 또는 뷰명
WHERE 조회할 데이터 조건
GROUP BY 그룹핑컬럼명
HAVING 그룹명 대상 필터링 조건

HAVING 절

  • 그룹 함수 결과를 조건으로 사용할 때 사용하는 절
  • WHERE 절을 사용하여 그룹을 제한할 수 없으므로 HAVING 절에 전달
  • 집계함수를 사용할 수 없는 WHERE절, HAVING절은 집계함수를 가지고 조건 비교 가능
  • 내부적 연산 순서가 SELECT절보다 먼저이므로 SELECT절에서 선언된 Alias 사용불가

ORDER BY 절

  • 출력되는 행의 순서를 사용자가 변경하고자 할 때 사용
  • 오름차순 (ASC), 내림차순 (DESC), 생략시 오름차순 정렬
  • SELECT 절에 정의한 컬럼 별칭 사용 가능

문법

SELECT * | 컬럼명 | 표현식
FROM 테이블명 또는 뷰명
WHERE 조회할 데이터 조건
GROUP BY 그룹핑컬럼명
HAVING 그룹명 대상 필터링 조건
ORDER BY 정렬컬럼명 [ASC|DESC]

복합 정렬

  • 먼저 정렬한 값의 동일한 결과가 있을 경우 추가적으로 정렬 가능
    - 1차 정렬한 값이 같은 경우 그 값 안에서 2차 정렬 컬럼값의 정렬이 일어남
    SELECT FIRST_NAME, SALARY, HIRE_DATE
     FROM EMPLOYEES
     WHERE SALARY > 10000
     AND DEPARTMENT_ID = 90
     ORDER BY SALARY DESC, HIRE_DATE ASC;
    • SALARY 값을 기준으로 내림차순으로 먼저 정렬 후 동일한 SALARY값이 있을 경우 HIRE_DATE 값으로 정렬

홍쌤의 데이터랩
SQLD 2과목 PART1. SQL 기본 완벽 정리 (2024년 신유형 반영) 강의에 대해
공부 및 개인적으로 정리한 글 입니다.

0개의 댓글