수색…
소개
일반적으로 프로그래밍뿐만 아니라 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') ;