다음을 통해 공유


Null 값

Null 값은 값을 알 수 없다는 의미입니다. Null 값은 빈 값이나 0과는 다르며 2개의 Null 값이 서로 같다고 할 수는 없습니다. 2개의 Null 값을 비교하거나 Null과 다른 값을 비교하면 각각의 Null 값을 알 수 없으므로 unknown이 반환됩니다.

Null 값은 대개 데이터를 알 수 없거나 해당 사항이 없거나 나중에 추가됨을 나타냅니다. 예를 들어 고객이 주문할 당시 고객의 중간 이름을 알 수 없는 경우도 있습니다.

다음은 Null에 관한 설명입니다.

  • 쿼리에서 Null 값을 검사하려면 WHERE 절에서 IS NULL이나 IS NOT NULL을 사용합니다.
  • SQL Server Management Studio 코드 편집기에 쿼리 결과가 나타나면 결과 집합에서 null 값이 **(null)**로 표시됩니다.
  • null 값은 INSERT 또는 UPDATE 문에서 NULL을 명시적으로 입력하거나 INSERT 문에서 해당 열을 제외시키거나 ALTER TABLE 문을 사용하여 기존 테이블에 새 열을 추가할 때 열에 입력됩니다.
  • 테이블의 행을 다른 행과 구별하는 데 필요한 정보(예: 기본 키)에는 Null 값을 사용할 수 없습니다.

프로그램 코드에서 특정 계산이 유효한(Null이 아닌) 데이터가 있는 행에서만 수행되도록 하여 Null 값을 검사할 수 있습니다. 예를 들어 열에 Null이 아닌 데이터가 있을 때만 주민 등록 번호 열을 인쇄하는 보고서가 있을 수 있습니다. NULL 열이 포함되면 결과가 틀려지는 계산(예: 평균)도 있으므로 계산을 수행할 때는 Null 값을 없애야 합니다.

Null 값이 데이터에 저장될 수 있지만 사용자가 자신의 데이터에 Null 값이 나타나는 것을 원하지 않는다면 Null을 없애거나 Null을 다른 값으로 변환하는 쿼리 및 데이터 수정 문을 만들어야 합니다.

ms191504.note(ko-kr,SQL.90).gif중요:
유지 관리에 대한 필요성 및 기존 쿼리나 보고서에 대한 영향을 최소화하려면 Null 값 사용을 최소화해야 합니다. Null 값이 영향을 미치지 않도록 쿼리와 데이터 수정 문을 작성하십시오.

데이터, 논리 연산자, 비교 연산자에 Null 값이 포함되어 있으면 TRUE 또는 FALSE 대신 UNKNOWN이라는 결과가 반환될 수 있습니다. 이와 같이 세 가지 결과를 가져오는 논리는 대부분 응용 프로그램에서 오류의 원인이 됩니다. 다음은 Null 값을 비교 연산한 결과를 정리한 표입니다.

다음 표에서는 2개의 부울 피연산자에 AND 연산자를 적용한 결과를 보여 줍니다.

AND TRUE UNKNOWN FALSE

TRUE

TRUE

UNKNOWN

FALSE

UNKNOWN

UNKNOWN

UNKNOWN

FALSE

FALSE

FALSE

FALSE

FALSE

다음 표에서는 2개의 부울 피연산자에 OR 연산자를 적용한 결과를 보여 줍니다.

OR TRUE UNKNOWN FALSE

TRUE

TRUE

TRUE

TRUE

UNKNOWN

TRUE

UNKNOWN

UNKNOWN

FALSE

TRUE

UNKNOWN

FALSE

다음 표에서는 부울 연산자에 NOT 연산자를 적용한 결과를 보여 줍니다.

NOT 연산자를 적용할 부울 식 결과

TRUE

FALSE

UNKNOWN

UNKNOWN

FALSE

TRUE

SQL-92 표준은 Null 값 여부를 검사하는 IS NULL 및 IS NOT NULL 키워드를 도입했습니다.

IS NULL 연산자를 적용할 부울 식 결과 IS NOT NULL 연산자를 적용할 부울 식 결과

TRUE

FALSE

TRUE

TRUE

NULL

TRUE

NULL

FALSE

FALSE

FALSE

FALSE

TRUE

Transact-SQL도 Null 처리를 위한 확장 기능을 제공합니다. ANSI_NULLS 옵션이 off로 설정된 경우 NULL = NULL과 같은 Null 값 간의 비교는 TRUE이고, NULL과 다른 데이터 값을 비교하면 FALSE가 됩니다.

참고 항목

개념

Null 값 허용
열 속성 수정

관련 자료

AND(Transact-SQL)
NOT(Transact-SQL)
CREATE TABLE(Transact-SQL)
OR(Transact-SQL)
ISNULL(Transact-SQL)
WHERE(Transact-SQL)

도움말 및 정보

SQL Server 2005 지원 받기