요약
SQL NVL과 COALESCE는 NULL 값을 다른 값으로 대체할 때 사용하는 대표적인 함수입니다. 데이터베이스에서는 NULL 처리가 매우 중요하며 SQLD 시험에서도 자주 출제되는 핵심 개념입니다. 이번 글에서는 SQL NVL, COALESCE의 사용법과 차이점, 실무 활용 사례까지 자세히 알아보겠습니다.
NULL이란?
SQL을 공부하다 보면 가장 먼저 헷갈리는 개념 중 하나가 NULL입니다.
많은 초보자가 NULL을 0이나 공백으로 생각하지만 실제로는 다릅니다.
NULL은 값이 없는 상태를 의미합니다.
예를 들어 직원의 커미션(COMM) 정보가 입력되지 않았다면 0이 아니라 NULL로 저장될 수 있습니다.
| 사원명 | 급여 | 커미션 |
|---|---|---|
| SMITH | 800 | NULL |
| ALLEN | 1600 | 300 |
| WARD | 1250 | 500 |
NULL은 숫자도 아니고 문자도 아닙니다.
따라서 일반적인 연산이나 비교를 수행할 때 주의해야 합니다. 더 많은 정보를 확인하고 SQL NULL 개념을 이해해보세요.
SQL NVL 함수란?
SQL NVL 함수는 NULL 값을 다른 값으로 변경하는 Oracle 함수입니다.
기본 문법은 다음과 같습니다.
NVL(컬럼명, 대체값)
예시
SELECT ENAME,
NVL(COMM, 0)
FROM EMP;
실행 결과
| 사원명 | 커미션 |
|---|---|
| SMITH | 0 |
| ALLEN | 300 |
| WARD | 500 |
SQL NVL 함수는 NULL이면 두 번째 값을 반환하고, NULL이 아니면 원래 값을 반환합니다.
실무에서 매우 자주 사용하는 함수 중 하나입니다. 더 많은 정보를 확인하고 SQL NVL 활용법을 익혀보세요.
SQL NVL을 사용하는 이유
NULL은 계산 시 예상치 못한 결과를 발생시킬 수 있습니다.
예를 들어
SELECT SAL + COMM
FROM EMP;
COMM이 NULL인 경우 결과도 NULL이 됩니다.
하지만 SQL NVL을 사용하면
SELECT SAL + NVL(COMM,0)
FROM EMP;
NULL 대신 0이 적용되어 정상적으로 계산됩니다.
이처럼 SQL NVL은 데이터 분석과 집계 작업에서 매우 중요한 역할을 합니다. 더 많은 정보를 확인하고 SQL NULL 처리 방법을 학습해보세요.
SQL COALESCE 함수란?
SQL COALESCE 함수도 NULL 값을 처리하는 함수입니다.
기본 문법은 다음과 같습니다.
COALESCE(값1, 값2, 값3 ...)
왼쪽부터 순서대로 확인하여 NULL이 아닌 첫 번째 값을 반환합니다.
예시
SELECT COALESCE(NULL, NULL, 100)
FROM DUAL;
결과
100
SQL COALESCE는 여러 개의 값을 순서대로 확인할 수 있다는 특징이 있습니다.
더 많은 정보를 확인하고 SQL COALESCE 활용 방법을 알아보세요.
SQL NVL과 COALESCE 차이
SQLD 시험에서 자주 출제되는 부분입니다.
| 구분 | NVL | COALESCE |
|---|---|---|
| 함수 종류 | Oracle 전용 | ANSI 표준 |
| 인수 개수 | 2개 | 여러 개 가능 |
| NULL 처리 | 가능 | 가능 |
| SQLD 출제 빈도 | 매우 높음 | 높음 |
예시
SQL NVL
NVL(COMM,0)
SQL COALESCE
COALESCE(COMM, BONUS, 0)
SQL COALESCE는 여러 컬럼을 순서대로 검사할 수 있다는 장점이 있습니다.
더 많은 정보를 확인하고 SQL 함수 차이점을 이해해보세요.
SQL NVL 실전 예제
직원 총급여를 계산해보겠습니다.
SELECT ENAME,
SAL + NVL(COMM,0) AS TOTAL_PAY
FROM EMP;
커미션이 없는 직원도 정상적으로 총급여가 계산됩니다.
실무에서는 급여 계산, 매출 계산, 생산량 계산 등에 SQL NVL을 자주 사용합니다.
더 많은 정보를 확인하고 SQL 실무 활용 사례를 알아보세요.
SQL COALESCE 실전 예제
연락처 정보를 조회한다고 가정해보겠습니다.
SELECT COALESCE(MOBILE,
TEL,
'연락처 없음')
FROM CUSTOMER;
결과
- 휴대폰 번호 존재 → 휴대폰 번호 출력
- 휴대폰 번호 없음 → 전화번호 출력
- 둘 다 없음 → 연락처 없음 출력
SQL COALESCE는 여러 후보 값 중 첫 번째 유효 값을 찾을 때 매우 유용합니다.
더 많은 정보를 확인하고 SQL 데이터 처리 능력을 향상시켜보세요.
SQLD 시험에서 자주 출제되는 NULL 관련 문제
SQLD 시험에서는 NULL 처리 문제가 매우 자주 출제됩니다.
예시
SELECT 100 + NULL
FROM DUAL;
결과
NULL
예시
SELECT 100 + NVL(NULL,0)
FROM DUAL;
결과
100
SQLD 시험에서는 이런 결과를 예측하는 문제가 자주 등장합니다.
더 많은 정보를 확인하고 SQLD 기출문제를 분석해보세요.
SQL NULL 비교 시 주의사항
많은 초보자가 다음과 같이 작성합니다.
잘못된 예시
SELECT *
FROM EMP
WHERE COMM = NULL;
위 SQL은 원하는 결과가 나오지 않습니다.
올바른 방법은
SELECT *
FROM EMP
WHERE COMM IS NULL;
또는
SELECT *
FROM EMP
WHERE COMM IS NOT NULL;
NULL 비교는 SQLD 시험의 대표적인 함정 문제입니다.
더 많은 정보를 확인하고 SQL NULL 처리 규칙을 익혀보세요.
NVL, COALESCE, NULLIF 비교
SQLD 시험에서는 다양한 NULL 관련 함수를 비교하기도 합니다.
| 함수 | 역할 |
|---|---|
| NVL | NULL 대체 |
| COALESCE | 첫 번째 NULL 아닌 값 반환 |
| NULLIF | 두 값이 같으면 NULL 반환 |
예시
SELECT NULLIF(100,100)
FROM DUAL;
결과
NULL
함수별 특징을 이해하면 SQLD 문제 풀이가 쉬워집니다.
더 많은 정보를 확인하고 SQL 함수 활용법을 정리해보세요.
SQLD 시험에서 NVL과 COALESCE가 중요한 이유
SQLD 시험에서는 NULL 처리 문제가 매우 자주 출제됩니다.
특히 다음 개념은 반드시 이해해야 합니다.
| 출제 포인트 | 중요도 |
|---|---|
| NULL 개념 | 매우 높음 |
| NVL 함수 | 매우 높음 |
| COALESCE 함수 | 높음 |
| NULL 비교 | 매우 높음 |
| 연산 결과 예측 | 매우 높음 |
| NULLIF | 중간 |
실제 SQLD 기출문제에서도 NVL과 NULL 관련 문제가 꾸준히 출제되고 있습니다.
더 많은 정보를 확인하고 SQLD 핵심 개념을 학습해보세요.
자주 묻는 질문(FAQ)
SQL NVL과 COALESCE 중 무엇을 사용하는 것이 좋나요?
Oracle 환경에서는 SQL NVL을 많이 사용하지만 표준 SQL 관점에서는 SQL COALESCE를 사용하는 경우도 많습니다. 더 많은 정보를 확인하고 SQL 함수 선택 기준을 알아보세요.
SQLD 시험에 NVL 문제가 많이 나오나요?
네. SQLD 시험에서 NULL 처리 문제는 매우 자주 출제됩니다. 더 많은 정보를 확인하고 SQLD 기출문제를 분석해보세요.
NULL과 0은 같은 의미인가요?
아닙니다. NULL은 값이 없는 상태이고 0은 실제 숫자 데이터입니다. 더 많은 정보를 확인하고 SQL NULL 개념을 확실히 이해해보세요.
마무리
SQL NVL과 COALESCE는 NULL 값을 처리하기 위한 대표적인 함수입니다. SQL NVL은 Oracle 환경에서 널리 사용되며 SQL COALESCE는 표준 SQL 함수로 여러 값을 순서대로 검사할 수 있습니다. SQLD 시험에서는 NULL 처리와 관련된 문제가 꾸준히 출제되므로 반드시 개념을 이해하고 다양한 예제를 직접 실행해보는 것을 추천합니다. 더 많은 정보를 확인하고 다음 단계인 SQL DECODE 함수도 함께 학습해보세요.
