T에서 허용하는 일반 값과 함께 “누락된 값”을 나타내는 특수 마커(NULL)를 저장할 수 있습니다. 예를 들어 Nullable(Int8) 타입의 컬럼은 Int8 타입 값을 저장할 수 있으며, 값이 없는 행에는 NULL이 저장됩니다.
T는 다음 복합 데이터 타입 중 어느 것도 될 수 없습니다.
하지만 복합 데이터 타입은 Nullable 타입 값을 포함할 수 있습니다. 예를 들어 Array(Nullable(Int8)) 또는 Tuple(Nullable(String), Nullable(Int64))와 같습니다.
Experimental: Nullable Tuples
allow_experimental_nullable_tuple_type = 1이 활성화되면 Nullable(Tuple(…))을 지원합니다.
Nullable 타입 필드는 테이블 인덱스에 포함할 수 없습니다.
ClickHouse 서버 구성에서 별도로 지정하지 않는 한, NULL은 모든 Nullable 타입의 기본값입니다.
저장소 기능
Nullable 타입 값을 저장할 때 ClickHouse는 값이 저장된 일반 파일 외에 NULL 마스크가 포함된 별도의 파일도 사용합니다. 마스크 파일의 각 항목을 통해 ClickHouse는 테이블의 각 행에서 NULL과 해당 데이터 타입의 기본값을 구분할 수 있습니다. 이 추가 파일 때문에 Nullable 컬럼은 유사한 일반 컬럼보다 더 많은 저장 공간을 사용합니다.
Nullable을 사용하면 거의 항상 성능에 부정적인 영향을 미치므로, 데이터베이스를 설계할 때 이 점을 염두에 두십시오.NULL 찾기
null 하위 컬럼을 사용해 컬럼에서 NULL 값을 찾을 수 있습니다. 해당 값이 NULL이면 1을 반환하고, 그렇지 않으면 0을 반환합니다.
예시
Query
Response