🍏 개발일기/으쌰으쌰 SQLD 자격증 준비

데이터 모델과 SQL & GROUP BY절, HAVING절, ORDER BY 절

보배 진 2026. 2. 12. 16:16

 

 

SELECT문 

SELECT문과 SELECT DISTINCT

SELECT문은 데이터베이스에서 데이터를 조회하는 가장 기본적인 명령문

SELECT 문을 활용하여 원하는 데이터 검색하고 효과적으로 표현 가능

SELECT [ALL|DISTINCT] 대상 칼럼명1, 대상 칼럼명2, ...
FROM 대상 칼럼들이 있는 테이블명

기본 형식

ALL : 기본 옵션으로 중복 데이터를 포함하여 모든 결과를 출력

DISTINCT  : 중복된 데이터가 있을 경우 한 건으로만 처리하여 출력

* : 조회 대상 칼럼을 지정하지 않고 모든 칼럼을 조회

 

 

 

 

칼럼 및 테이블 별칭 사용하기

별칭(ALIAS)은 칼럼이나 테이블에 임시 이름을 지정하는 기능으로,

칼럼 이름이 길거나 이해하기 어려울 때 결과를 더 명확하게 하기 위해 사용

 

SELECT 칼럼명 AS 별칭
FROM 테이블명;

기본 형식

 

공백이 포함된 별칭 : Oracle에서는 " " , SQL Server에서는 " " 또는 [ ]

 

 

 

 

산술 연산자와 문자 합성 연산자

산술 연산자 : +,  -, *, /

문자 합성 연산자 : 오라클은 ||, SQL Server는 + 또는 CONCAT (여러 문자열을 하나로 합칠 때 사용)

 

ex)

SELECT ENAME || ' is a ' || JOB AS EMPLOYEE_INFO
FROM EMP

결과: "KING is a PRESIDENT" 형태의 문자열로 출력

 

 

 

 

 

함수

SQL 내장 함수는 데이터 퍼리와 조작에 사용되는 미리 정의된 함수들

🔹 단일행 함수 : 각 행마다 하나의 결과를 반환

🔹 다중행 함수 : 여러 행의 데이터를 입력받아 하나의 결과 반환

 

Ex) 

SING(-10) 부호반환 ➡ -1

MOD(17, 5) 나머지 연산 ➡ 2

CEIL(4.3) 올림 ➡ 5

FLOOR(4.7) 내림 ➡ 4

 

NULL 관련 함수

EX)

NVL(COMM., 0) ➡ NULL 이면 대체 값 반환

COALESCE(COMM, SAL, 0) ➡ 첫번째 NULL이 아닌 값 반환

NULLIF(COMM, 0) ➡ 두 값이 같으면 NULL, 다르면 첫번째 값 반환

IFNULL(COMM, 0) ➡ 첫번째 값이 NULL이면 두번째 값으로 대체

ISNULL(COMM, 0) ➡ NULL이면 두 번째 값으로 대체, 아니면 첫번째 값

함수 설명 예시
NULLIF(expr1, expr2) 두 값이 같으면 NULL 반환, 다르면 첫 번째 값 반환 NULLIF(5,5) → NULL, NULLIF(5,3) → 5
IFNULL(expr, value) 첫 번째 값이 NULL이면 두 번째 값으로 대체 IFNULL(NULL, 0) → 0, IFNULL(5,0) → 5
ISNULL(expr, value) NULL이면 두 번째 값으로 대체 (DBMS에 따라 동작 동일) ISNULL(NULL, 0) → 0, ISNULL(5,0) → 5

 

 

 

 

 

WHERE 절

WHERE 절은 조회할 데이터를 필터링하는데 사용되며,

특정 조건에 맞는 행만 결과에 포함시킵니다

 

SELECT 칼럼명1, 칼럼명2, ...
FROM 테이블명
WHERE 조건식;

기본 형식

 

 

비교 연산자

-, <>, !=, >, <, >= , <=

(같지 않음 : <> 또는 !=)

 

 

 

논리 연산자

AND : 두 조건 모두 참이면 참

OR : 두 조건 중 하나라도 참이면 참

NOT : 조건이 거짓이면 참

 

 

 

특수 연산자

BETWEEN a AND b : a와 b 사이의 값

IN(list) : 목록에 보함된 값 ex) DEPTNO IN (10, 20)

LIKE : 패턴 일치 

IS NULL : null 값

IS NOT NULL : null이 아닌 값

 

 

 

📛연산자 우선 순위

1. 괄호 ()

2. 산술연산자(*, /, +, -)

3. 비교 연산자 (=, <>, >, <, >=, <=)

4. NOT

5. AND

6. OR

 

 

 


 

GROUP BY절, HAVING절, ORDER BY 절

집계 함수

집계 함수는 여러 행의 데이터를 그룹화하여 하나의 결과를 반환합니다

COUNT : 행 수 계산

SUM : 합계

AVG : 평균

MAX : 최댓값

MIN : 최솟값

 

 

 

GROUP BY 절

GROUP BY 절의 지정한 컬럼의 값이 같은 행을 그룹화하여 각 그룹에 집계 함수를 적용합니다

SELECT 칼럼명, 집계함수(칼럼명)
FROM 테이블명
GROUP BY 그룹화할_칼럼명;

기본 형식

 

 

 

 

HAVING 절

HAVING 절은 GROUP BY로 만들어진 그룹 중에서 특정 조건을 만족하는 그룹만 선택

SELECT 칼럼명, 집계함수(칼럼명)
FROM 테이블명
GROUP BY 그룹화할_칼럼명
HAVING 집계함수_조건;

기본 형식

 

 

 

WHERE과 HAVING의 차이점

🔹 WHERE : 개별 행에 대한 필터링, GROUP BY 전에 적용

🔹 HAVING : 그룹화된 결과에 대한 필터링, GROUP BY 후에 적용

 

 

 

 

ORDER BY 절

ORDER BY 절은 쿼리 결과를 특정 칼럼 기준으로 정렬

SELECT 칼럼명
FROM 테이블명
ORDER BY 정렬기준칼럼 [ASC|DESC]

ASC : 오름차순 정렬 (기본값) 1, 2, 3, 4...

DESC : 내림차순 정렬             4, 3, 2, 1...

 

 

 

 

SQL 실행 순서

SQL 문의 논리적 실행 순서는 다음과 같습니다

1. FROM : 데이터 가져오기

2. WHERE : 조건에 맞는 행 필터링

3. GROUP BY : 지정한 칼럼 기준으로 그룹화

4. HAVING : 그룹에 대한 조건 적용

5. SELECT : 결과 생성

6. ORDER BY : 결과 정렬