본문 바로가기

자격증/SQLD

[SQLD][아이리포]14-15. 관계형 데이터베이스 | SQL 함수 | 조건절 | WHERE절 | 집계함수 | GROUP BY절

반응형
목차

3. 관계형 데이터베이스
3-4. WHERE
3-5. GROUP BY
3-5-1. 집계함수
3-5-2. HAVING

3. 관계형 데이터베이스

3-4. WHERE

WHERE 절은 특정 조건을 만족하는 행(Row)만 조회하거나 수정, 삭제하기 위해 사용하는 절입니다.

 

즉, 테이블의 모든 데이터를 대상으로 하는 것이 아니라, 조건에 맞는 데이터만 선택하여 작업할 수 있습니다.

 

✔️ WHERE 절의 특징

- 조건을 만족하는 행(Row)만 조회한다.

- SELECT, UPDATE, DELETE 문에서 사용할 수 있다.

- INSERT 문에서는 사용할 수 없다.

- SQL 실행 순서 상 FROM -> WHERE -> SELECT 순으로 처리된다.

➜ 따라서 FROM 절에서 지정한 테이블 별명(Alias)은 사용할 수 있지만, SELECT 절에서 지정한 컬럼 별명(Alias)은 사용할 수 없다.

 

✔️ 기본 사용법

SELECT * FROM 테이블명 WHERE 조건식;

 

🔹 예시

 

SELECT * FROM EMP WHERE DEPTNO = 30;

 

 실행결과

EMP 테이블에서 부서번호(DEPTNO)가 30인 사원만 조회한다.

 

📌 NULL 비교

NULL은 값이 없는 상태를 의미하기 때문에 일반 비교 연산자로 비교할 수 없습니다.

NULL을 비교할 때는 반드시 IS NULL 또는 IS NOT NULL을 사용해야 합니다.

3-5. GROUP BY

특정 값을 기준으로 데이터를 그룹핑할 때 사용한다.

 

✔️ 기본 사용법

SELECT 컬럼명, 집계함수(컬럼명) AS 별명 FROM 테이블명 GROUP BY 컬럼명;

 

🔹 예시

SELECT DEPTNO, SUM(SAL) AS SALS FROM EMP GROUP BY DEPTNO;

 

➜ 실행결과

1️⃣ 집계함수

집계함수는 여러 행(Row)의 데이터를 하나의 결과값으로 계산하는 함수입니다.

주로 개수, 합계, 평균, 최솟값, 최대값 등을 계산할 때 사용하며 GROUP BY와 함께 자주 사용됩니다.

 

GROUP BY 없이 집계함수를 사용하면 전체 데이터를 하나의 그룹으로 간주하여 연산합니다.

 

✔️ 집계함수 목록

함수 설명
COUNT(컬럼명) 입력된 컬럼에서 값이 NULL인 행을 제외한 행의 개수를 반환한다.
COUNT(*) 전체 행의 개수를 반환한다. (NULL 포함)
SUM 입력된 컬럼의 합을 반환한다.
AVG 입력된 컬럼의 평균을 반환한다.
MIN 입력된 컬럼의 최솟값을 반환한다.
MAX 입력된 컬럼의 최댓값을 반환한다.

 

✔️ DISTINCT

DISTINCT를 사용하면 중복된 값을 제거한 후 집계함수를 수행한다.

2️⃣ HAVING

GROUP BY 연산이 끝난 결과에 대해서 HAVING 절의 조건을 만족하는 그룹만 추출한다.

 

WHERE는 행(Row)를 필터링하고, HAVING은 그룹(GROUP)을 필터링한다.

 

✔️ 기본 사용법

SELECT 컬럼명A FROM 테이블명 GROUP BY 컬럼명A HAVING 조건;

 


🔹 예시

SELECT ID
FROM TBL
GROUP BY ID
HAVING COUNT(*) = 2;


➜ 실행결과

 

 

📌 SQL문 실행 순서

1. FROM

2. WHERE

3. GROUP BY

4. HAVING

5. SELECT

6. ORDER BY

 

💡 GROUP BY는 많은 데이터를 그룹화하는 과정이므로 처리 비용이 큰 편입니다.

따라서 WHERE 절로 불필요한 데이터를 먼저 제외한 후, GROUP BY를 수행하는 것이 성능상 유리합니다.

 

📌 핵심 정리

- COUNT(*)와 COUNT(컬럼명)의 차이

- AVG는 NULL을 제외하고 평균을 계산한다.

- DISTINCT는 중복을 제거한 후 집계한다.


🔗 출처

[SQLD 모든 것]

반응형