SQLD [NULL 속성의 이해]

김예은·2024년 9월 9일
0

데이터베이스

목록 보기
5/10
post-thumbnail

의미

  • DBMS에서 아직 정해지지 않은 값을 의미
  • 0과 빈 문자열(’ ‘)과는 다른 개념
  • 모델 설계 시 각 컬럼 별로 NULL을 허용할 지를 결정함

특성

  1. NULL을 포함한 연산결과는 항상 NULL

→ 컬럼에 공백으로 보이는 것은 NULL로 생각해야 함 . 이 때, NULL을 포함한 연산결과는 NULL이 리턴됨(NULL을 사전 치환하면 연산 가능)

  1. 집계함수는 NULL을 제외한 연산 결과 리턴

→ SUM, AVG, MIN, MAX 등의 함수는 항상 NULL을 무시함. NULL일 경우 제외되고 NOT NULL인 행만 세어서 리턴함

*** 출제

ISNULL함수는 결과값이 NULL일 경우 지정된 값을 반환한다.

칼럼의 NULL값을 확인할 때는 ISNULL을 사용해야 한다.

SELECT COUNT(COL1) FROM TAB1 WHERE COL2 = NULL --> 이 WHERE절은 잘못되어있다.

NULL 비교는 오직 IS NULL, IS NOT NULL로만 가능

NULL의 ERD 표기법과 바커 표기

NULL 관련 함수

NVL(표현식1, 표현식2) - ORACLE , ISNULL(표현식1, 표현식1) - SQL Server

  • 표현식 1의 결과값이 null이면 표현식 2의 값을 출력한다.
  • 단, 표현식 1과 표현식2의 데이터 타입이 같아야 한다.
  • null 관련 가장 많이 사용되는 함수이다.

NVL 함수는 칼럼의 값이 NULL인 경우 특정 값으로 치환하기 위해서 사용한다.

NVL2 함수는 칼럼의 값이 NULL인 경우와 NULL이 아닌 경우 두 가지 케이스 모두 특정 값을 반환할 수 있다.

NVL 함수는 NULL인 경우 단순 기본값을 부여하기 위해서 자주 사용하며, NVL2 함수는 NULL을 기준으로 If ~ else ~와 같이 판단하여 특정 값을 반환할 수 있다.

NVL2("값", "지정값1", "지정값2")

NVL2 함수는 NULL이 아닌 경우 지정값1을  출력하고, NULL인 경우 지정값2를 출력한다.

  • 함수 : NVL2("값", "지정값1", "지정값2") // NVL2("값", "NOT NULL", "NULL")

NULLIF(표현식1, 표현식2)

  • 표현식1과 표현식2가 같으면 NULL을 같지 않으면 표현식 1을 리턴한다.
    ex) SELECT ENAME, EMPNO, MGR, NULLIF(MGR, 7698) AS NM FROM EMP;

COALESCE (표현식1, 표현식2,...)

  • 임의의 개수 표현식에서 NULL이 아닌 최초의 표현식을 나타낸다.
  • 모든 표현식이 NULL이면 NULL을 리턴한다.

DECODE(표현식1, 표현식2, 표현식3, NULL)

표현식1 = 표현식2 → 표현식3 , 아니면 NULL

profile
소프트웨어공학 / 정보통신공학

0개의 댓글

관련 채용 정보