수색…


소개

일반적으로 프로그래밍뿐만 아니라 SQL의 NULL 은 문자 그대로 "아무것도"를 의미하지 않습니다. SQL에서는 '어떤 가치도 없음'으로 이해하는 것이 더 쉽습니다.

빈 문자열 '' 또는 숫자 0 과 같이 겉으로보기에는 빈 값과 구별하는 것이 중요 NULL . 실제로는 NULL 도 아닙니다.

또한 'NULL' 과 같이 따옴표로 NULL 을 묶지 않도록주의하는 것이 중요합니다. 'NULL' 은 텍스트를 허용하지만 NULL 이 아니며 오류 및 잘못된 데이터 세트를 유발할 수있는 열에서는 허용됩니다.

쿼리에서 NULL 필터링

WHERE 블록에서 NULL (즉, 값 부재)을 필터링하는 구문은 특정 값을 필터링하는 것과 약간 다릅니다.

SELECT * FROM Employees WHERE ManagerId IS NULL ;
SELECT * FROM Employees WHERE ManagerId IS NOT NULL ;

NULL 은 아무 것도 아닌 평등 연산자 = NULL 또는 <> NULL (또는 != NULL )을 사용하여 UNKNOWN 의 진리 값을 항상 산출하므로 WHERE 가 거부합니다.

WHERE 조건이 FALSE 또는 UKNOWN 모든 행을 필터링하고 조건이 TRUE 행만 유지 TRUE .

테이블의 Nullable 열

테이블을 만들 때 열을 nullable 또는 nullable이 아닌 것으로 선언 할 수 있습니다.

CREATE TABLE MyTable
(
    MyCol1 INT NOT NULL, -- non-nullable
    MyCol2 INT NULL      -- nullable
) ;

기본적으로 NOT NULL 제약 조건을 명시 적으로 설정 NOT NULL 않는 한 모든 열 (기본 키 제약 조건의 열 제외)은 Null입니다.

Null을 허용하지 않는 열에 NULL 을 할당하려고 시도하면 오류가 발생합니다.

INSERT INTO MyTable (MyCol1, MyCol2) VALUES (1, NULL) ;  -- works fine

INSERT INTO MyTable (MyCol1, MyCol2) VALUES (NULL, 2) ;  
        -- cannot insert
        -- the value NULL into column 'MyCol1', table 'MyTable'; 
        -- column does not allow nulls. INSERT fails.

필드를 NULL로 업데이트 중

필드를 NULL 설정하면 다른 값과 똑같이 작동합니다.

UPDATE Employees 
SET ManagerId = NULL
WHERE Id = 4

NULL 필드가있는 행 삽입

예를 들어 전화 번호가없고 직원이없는 직원을 Employees 예제 테이블에 삽입하는 경우 :

INSERT INTO Employees
    (Id, FName, LName, PhoneNumber, ManagerId, DepartmentId, Salary, HireDate)
VALUES
    (5, 'Jane', 'Doe', NULL, NULL, 2, 800, '2016-07-22') ;


Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow