4.5.1.   Ограничение NOT NULL

Чтобы запретить возможность использования вполе NULL-зна-чений, можно при создании таблицы командой CREATE TABLE указать для соответствующе го столбца ключе вое слово NOT NULL. Это ограничение применимо только к столбцам таблицы. Как уже говорилось выше, NULL — это специальный маркер, обозна­чающий тот факт, что поле пусто. Но он полезен не всегда. Пер­вичные ключи, например, в принципе не должны содержать NULL-значений (быть пустыми), поскольку это нарушило бы тре­бование уникальности первичного ключа (более строго — функциональную зависимость атрибутов таблицы от первичного клю­ча). Во многих других случаях также необходимо, чтобы ПОЛЯ обязательно содержали определенные значения. Если ключевое слово NOT NULL размещается непосредственно после типа данных (включая размер) столбца, то любые попытки оставить значениеполя пустым (ввести в поле NULL-значение) будут отвергнуты системой.

Например, для того, чтобы в определении таблицы STUDENT запретить использование NULL-значений для столбцов STUDENTID, SURNAME и NAME, можно записать следующее:

CREATE TABLE STUDENT (STUDENT_ID   INTEGER NOT NULL, SURNAME CHAR    (25)     NOT NULL,

NAME CHAR    (10)     NOT NULL,

STIPEND INTEGER, KURS INTEGER, CITY CHAR (15),

BIRTHDAY DATE, UNIV_ID INTEGER) ;

Важно помнить: если для столбца указано NOT NULL, то при использовании команды INSERT обязательно должно быть ука­зано конкретное значение, вводимое в это поле. При отсутст­вии ограничения NOT NULLb столбце значение может отсутство­вать, если только не указано значение столбца по умолчанию (DEFAULT). Если при создании таблицы ограничение NOT NULL не было указано, то его можно указать позже, используя коман­ду ALTER TABLE. Однако для того, чтобы для вновь вводимого с помощью команды ALTER TABLE столбца можно было задать ограничение NOT NULL, таблица, в которую добавляется стол­бец, должна быть пустой.