오라클
오라클은 인덱스에 널 값을 허용하지 않고, 기본키 컬럼에도 널 값을 넣을 수 없다. 여러 컬럼으로 된 복합키에 NULL이 아닌 컬럼이 하나라도 있으면 인덱스를 만드는 것이 가능하다.
복합키를 구성하는 컬럼의 하나로 상수 값을 포함하거나 NULL을 처리할 수 있는 함수 기반 인덱스로 널 값을 인덱스에 사용하도록 강제할 수 있다. 코드 2-5는 널 값을 가질 수 있는 컬럼을 포함하는 복합 인덱스에 상수 값을 추가하는 방법을 보여 준다.
코드 2-5 가상의 복합키로 오라클이 인덱스에 널 값을 허용하도록 처리
CREATE INDEX CustPhone_IDX
ON Customers (CustPhoneNumber ASC, 1);
NVL() 함수를 사용하면 널 값을 다른 값으로 대체할 수 있는데, 방법은 코드 2-6과 같다.
코드 2-6 널 값을 변환해 인덱스 생성
CREATE INDEX CustPhone_IDX
ON Customers (NVL(CustPhoneNumber, ‘unknown’));