본문 바로가기

데이터 분석/Postgre SQL - 정리하자

NULL이냐 IS NULL이냐? 유무판단 해보기

반응형

# 구동 환경 : Postgre SQL 12.3 설치 -> pgAdmin4에서 아래 DB 연동 -> DBeaver 7.1.2 버전에서 코딩 진행

# 활용하는 DB = dvdrental.tar

IS NULL 연산자는 특정 컬럼 혹은 값이 NULL 값인지 아닌지를 판단하는 연산자입니다. IS NULL 혹은 IS NOT NULL로 NULL 유무를 판단합니다.

PostgreSQL의 IS NULL 연산자: 사용 이유와 중요성

IS NULL 연산자는 SQL 쿼리에서 특정 열의 값이 NULL인지 여부를 확인하는 데 사용됩니다. 이는 데이터베이스 관리 및 데이터 무결성 유지에서 매우 중요한 도구입니다. 왜 IS NULL 연산자를 사용해야 하며, 무엇이 중요한지에 대해 자세히 살펴보겠습니다.

 

IS NULL 연산자를 사용하는 이유

  1. 데이터 무결성 유지: 데이터베이스에서 NULL 값은 데이터가 존재하지 않음을 의미합니다. IS NULL 연산자를 사용하면 데이터 무결성을 유지하고, 데이터가 없는 경우를 처리할 수 있습니다.
  2. 정확한 데이터 조회: NULL 값을 확인하고 처리함으로써 데이터 조회의 정확성을 높일 수 있습니다. 이는 보고서 작성이나 데이터 분석 시 매우 중요합니다.
  3. 조건부 처리: 특정 열이 NULL인 경우와 아닌 경우를 구분하여 조건부 처리를 수행할 수 있습니다. 예를 들어, 고객의 이메일 주소가 없는 경우와 있는 경우를 다르게 처리할 수 있습니다.
  4. 데이터 정리 및 보정: NULL 값을 확인하여 데이터를 정리하거나 보정할 수 있습니다. 예를 들어, NULL 값을 기본값으로 대체하거나, 데이터 입력 오류를 수정할 수 있습니다.

 

IS NULL 연산자의 중요성

  1. 데이터 무결성 보장: IS NULL 연산자는 데이터 무결성을 보장하는 데 중요한 역할을 합니다. 이를 통해 데이터베이스에서 누락된 데이터를 식별하고 적절한 조치를 취할 수 있습니다.
  2. 쿼리 성능 최적화: NULL 값을 명확하게 처리함으로써 쿼리 성능을 최적화할 수 있습니다. 특히, 인덱스가 적용된 열에서 NULL 값을 효율적으로 처리할 수 있습니다.
  3. 유연한 데이터 처리: IS NULL 연산자를 사용하면 데이터의 유무에 따라 유연한 조건부 처리를 수행할 수 있습니다. 이는 다양한 데이터 처리 시나리오에서 매우 유용합니다.
  4. 데이터 분석 정확성 향상: NULL 값을 명확히 처리함으로써 데이터 분석의 정확성을 향상시킬 수 있습니다. 이는 분석 결과의 신뢰성을 높이는 데 기여합니다.

 

IS NULL 연산자의 활용

  1. 기본 사용: employees 테이블에서 이메일 주소가 없는 직원들을 조회합니다.
  2. NOT NULL 사용: 이메일 주소가 있는 직원들을 조회할 수 있습니다.
  3. 조건부 업데이트: employees 테이블에서 이메일 주소가 NULL인 경우 기본 이메일 주소로 업데이트합니다.
  4. NULL 값 처리: orders 테이블에서 배송일이 NULL인 경우 '배송 준비 중'으로 표시합니다.
  5. JOIN 시 NULL 값 처리: LEFT JOIN을 사용하여 orders 테이블과 customers 테이블을 결합할 때, 고객 정보가 없는 주문을 조회합니다.

 

예제를 생성하고 내용을 진행해보겠습니다.

CREATE TABLE CONTACTS -- CONTACTS라는 테이블을 생성
(
 ID INT GENERATED BY DEFAULT AS IDENTITY 
,FIRST_NAME VARCHAR(50) NOT NULL 
,LAST_NAME VARCHAR(50) NOT NULL 
,EMAIL VARCHAR(255) NOT NULL 
,PHONE VARCHAR(15)
,PRIMARY KEY (ID)
);
INSERT -- 예제를 위한 값들을 생성하고 기입
 INTO
 CONTACTS(FIRST_NAME, LAST_NAME, EMAIL, PHONE)
 VALUES
 ('John', 'Doe', 'john.doe@example.com', NULL),
 ('Lily', 'Bush', 'lily.bush@example.com', '(408-234-2764)');
SELECT *
  FROM CONTACTS; -- CONTACTS테이블의 모든 값을 출력

예재가 잘 생성되었습니다.

 SELECT
        ID
       ,FIRST_NAME
       ,LAST_NAME
       ,EMAIL
       ,PHONE
   FROM 
        CONTACTS
  WHERE PHONE IS NULL; -- PHONE컬럼의 값이 NULL인 집합을 출력
  -- WHERE PHONE = NULL
  -- 은 결과 집합이 공집합입니다. NULL은 '='연산으로 비교할 수 없습니다.

PHONE이 NULL값인 유저가 잘 출력되었습니다.

 SELECT
        ID
       ,FIRST_NAME
       ,LAST_NAME
       ,EMAIL
       ,PHONE
   FROM 
        CONTACTS
  WHERE PHONE IS NOT NULL; -- PHONE컬럼의 값이 NULL이 아닌 집합을 출력

PHONE이 NULL값이 아닌 유저가 잘 출력되었습니다.

 

결론

PostgreSQL의 IS NULL 연산자는 데이터베이스에서 NULL 값을 확인하고 처리하는 데 매우 유용한 도구입니다. 이를 통해 데이터 무결성을 유지하고, 정확한 데이터 조회와 유연한 조건부 처리를 수행할 수 있습니다. IS NULL 연산자를 잘 활용하면 데이터베이스 작업이 훨씬 더 효율적이고 정확하게 이루어질 것입니다.

 

다음에는 배운것들을 가지고 연습문제를 풀어보도록 하겠습니다.

반응형

'데이터 분석 > Postgre SQL - 정리하자' 카테고리의 다른 글

LIKE 연산자는?  (0) 2024.07.12
BETWEEN 연산자란?  (0) 2024.07.12
IN 연산자를 활용해보자  (0) 2024.07.11
Fetch문을 왜 사용해야 할까?  (0) 2024.07.11
Limit 문은 언제 어떻게 쓰일까?  (0) 2024.07.10