Sql Scholl
Распечатать страницу
Перейти на главную Карта сайта Отправить сообщение

Создание таблиц

Работа со значениями NULL

      В разделе, "Фильтрация данных", рассказывалось о том, что такое значение NULL. Использование этого значения подразумевает, что в столбце не должно содержаться никакое значение или неизвестно значение, которое должно быть в столбце. Столбец, в котором разрешается присутствие значения NULL, позволяет также добавлять в таблицу строки, в которых не предусмотрено значение для данного столбца. Столбец, в котором не разрешается присутствие значения NULL, не принимает строки с отсутствующим значением. Иными словами, для этого столбца всегда потребуется вводить какое-то значение при добавлении или обновлении строк.

     Каждый столбец таблицы может быть или пустым (NULL), или не пустым (NOT NULL), и это его состояние оговаривается в определении таблицы во время ее создания. Рассмотрим следующий пример:

CREATE TABLE Orders
(
order_num INTEGER NOT NULL, 
order_date DATETIME NOT NULL, 
cust_id CHAR (10) NOT NULL,
)

     Посредством этого оператора создается таблица Orders, неоднократно использованная в книге. Таблица Orders состоит из трех столбцов: номер заказа (order number), дата заказа (order date) и идентификатор клиента (customer ID). Все три столбца являются необходимыми, каждый содержит ключевое слово NOT NULL, которое будет препятствовать добавлению в таблицу столбцов с отсутствующим значением. При попытке добавления такого столбца будет возвращено сообщение об ошибке, и добавить такую запись не удастся.

     В следующем примере создается таблица, в которой могут быть столбцы обеих разновидностей, NULL и NOT NULL:

CREATE TABLE Vendors
(
vend_id CHAR (10) NULL, 
vend_name CHAR(50) NOT NULL, 
vend_address CHAR (50), 
vend_city CHAR(50), 
vend_state CHAR(5), 
vend_ZIP CHAR(IO), 
vend_country CHAR(50) 
)

      Посредством этого оператора создается таблица Vendors, неоднократно используемая в книге. Столбцы с идентификатором поставщика и именем поставщика необходимы, поэтому оба определены как NOT NULL (т.е. не допускающие значение NULL). Пять остальных столбцов допускают значения NULL, поэтому для них не указано требование NOT NULL. Значение NULL является значением по умолчанию, поэтому, если не указано требование NOT NULL, предполагается разрешение на использование значения NULL.

Указание значения NULL

Во многих СУБД отсутствие ключевых слов not null трактуется как null. Однако не во всех. В СУБД DB2 наличие ключевого слова null является обязательным; если оно не указано, генерируется сообщение об ошибке. Обратитесь к документации своей СУБД, чтобы получить исчерпывающую информацию о синтаксисе.

Что такое NULL

Не удивляйтесь, увидев значения null в пустых строках. Значение null означает отсутствие значения; это не пустая строка. Если вы указали в коде ' ' (две одинарных кавычки, между которыми ничего нет), это "значение" можно было бы ввести в столбец типа NOT null. Пустая строка является допустимым значением; это не означает отсутствие значения. Значения null указываются посредством ключевого слова null, но не пустой строкой.