데이터 분석가와 데이터베이스 전문가에게 SQL에서 NULL 값 처리는 흔히 발생하는 과제입니다. NULL 값을 다루는 것이 복잡하고 혼란스러울 수 있어서, 데이터 분석 과정에서 어려움을 겪을 수 있습니다.
하지만 정확하고 종합적인 데이터 통찰력을 얻기 위해서는 NULL 값이 무엇을 의미하는지 이해하는 것이 필수적입니다. 이 글에서는 SQL 명령어를 사용하여 NULL 및 NOT NULL 값을 식별하고 세는 방법을 상세히 알아보겠습니다.
SQL NULL 값이란 무엇인가?
NULL 값은 데이터가 없음을 나타내며, 0이나 공백과는 다른 의미를 가집니다.
이 때문에, 일반적인 비교 연산자 (=, <, >, <>)를 NULL 값과 함께 사용할 수 없습니다. 이러한 연산자를 사용하면 결과는 UNKNOWN으로 반환됩니다.
NULL 값은 데이터베이스 레코드 생성 시 비어 있는 필드라고 생각할 수 있습니다. 즉, 값을 입력하지 않고 테이블을 생성하거나 새로운 열을 추가할 수 있으며, 이러한 필드는 NULL 값을 가지게 됩니다. NULL 값은 어떤 데이터 유형의 열에도 삽입될 수 있습니다.
다음 예시를 통해 SQL 테이블을 생성하고 NULL 값을 확인해 보겠습니다.
CREATE TABLE Employee ( FirstName VARCHAR(50), LastName VARCHAR(50), PhoneNum VARCHAR(15), Salary FLOAT ); INSERT INTO Employee (FirstName, LastName, PhoneNum, Salary) VALUES ('Maxwell', 'Ayomide', '812-345-6789', 150000.00), ('David', 'Tosin', NULL, 450000.00), ('Eben', 'Teniola', '912-345-6789', 590000.00), ('Kenneth', 'Olisa', '809-456-8732', NULL), ('Esther', 'Oge', NULL, NULL);
테이블의 NULL 값을 업데이트하는 데는 초보자도 쉽게 사용할 수 있는 SQL UPDATE 문을 활용할 수 있습니다. 다음은 그 예시입니다.
UPDATE Employee
SET FirstName="Esther"
WHERE Salary = 200000;
결과를 확인하려면 다음 SQL 쿼리를 실행하세요.
SELECT * FROM Employee;
SQL NULL 값은 언제 유용한가?
SQL에서 NULL 값은 다양한 상황에서 활용될 수 있습니다.
- 데이터 입력 시, 데이터가 없거나 아직 알 수 없는 경우.
- 데이터가 특정 항목에 적용되지 않는 경우. 예를 들어 설문조사에서 ‘자녀가 있습니까?’와 같은 질문에 응답하지 않은 경우 NULL 값이 사용될 수 있습니다.
SQL IS NULL 조건이란 무엇인가?
SQL IS NULL 명령어는 프로그래머에게 필수적인 SQL 명령 중 하나입니다. 이 명령어는 NULL 값을 확인하는 데 사용되며, NULL 값 검색에 매우 유용합니다. 쿼리에 지정된 열에서 NULL 값을 가진 모든 행을 반환합니다.
SELECT FirstName, LastName, PhoneNum FROM Employee WHERE PhoneNum IS NULL;
이 쿼리는 PhoneNum 열에서 NULL 값을 가진 모든 행을 출력합니다.
SQL IS NOT NULL 조건이란 무엇인가?
SQL IS NOT NULL 명령어는 SQL IS NULL 명령어와 반대되는 기능을 합니다.
이 명령어는 비어있지 않은 값(NULL 값이 아닌 값)을 확인합니다. 따라서 항상 값을 가지고 있는 열의 모든 행을 반환하며, 쿼리에 지정된 열에서 NULL 값을 가진 행은 제외합니다.
SELECT FirstName, LastName, PhoneNum FROM Employee WHERE PhoneNum IS NOT NULL;
이 쿼리는 PhoneNum 열에서 NULL 값이 아닌 모든 행을 보여줍니다.
열에서 SQL NULL 값을 세는 방법은 무엇인가?
COUNT() 명령어는 개수를 계산할 때 사용됩니다. 이 명령어는 SQL 테이블의 데이터를 분석하고 SQL 하위 쿼리 및 임시 테이블을 다룰 때 유용합니다.
PhoneNum 열에서 NULL 값의 개수를 확인하려면 다음 쿼리를 사용합니다.
SELECT COUNT(*) AS [Total Number of NULL] FROM Employee WHERE PhoneNum IS NULL
다음과 같은 결과가 반환됩니다.
열에서 NOT NULL 값을 세는 방법은 무엇인가?
PhoneNum 열에서 NULL이 아닌 값의 개수를 세려면 NOT NULL 명령어를 활용합니다.
SELECT COUNT(PhoneNum) AS [Total Number of Non-NULL Values] FROM Employee WHERE PhoneNum IS NOT NULL
다음과 같은 결과를 얻을 수 있습니다.
이 쿼리를 사용하여 결과를 테이블 형태로 표시할 수도 있습니다.
SELECT SUM(CASE WHEN PhoneNum is null THEN 1 ELSE 0 END) AS [Number Of Null Values], COUNT(PhoneNum) AS [Number Of Non-Null Values] FROM Employee
이 쿼리에서는 CASE와 IS NULL 명령어를 사용하여 PhoneNum 열에서 NULL 값을 1로 분류했습니다. 이 값은 ‘Null 값의 수’ 열에 더해져 저장됩니다.
NULL 값을 세고 분석을 계속 진행하세요
NULL 값은 다소 복잡해 보일 수 있지만, 실제로는 간단하게 처리할 수 있습니다. COUNT() 함수를 이용하면 몇 줄의 SQL 코드로 NULL 값과 NULL이 아닌 값을 쉽게 계산할 수 있습니다.
SQL 명령어를 잘 숙지하면 다양한 상황에 적용하여 데이터를 쉽게 분석할 수 있습니다.