MySQL 5.0. Библиотека программиста. Виктор Гольцман
Чтение книги онлайн.

Читать онлайн книгу MySQL 5.0. Библиотека программиста - Виктор Гольцман страница 20

Название: MySQL 5.0. Библиотека программиста

Автор: Виктор Гольцман

Издательство:

Жанр: Программирование

Серия:

isbn: 978-5-49807-135-0

isbn:

СКАЧАТЬ значений говорилось в разделе «Создание базы данных»).

      Например, чтобы имена клиентов хранились в кодировке CP-1251, тогда как кодировкой по умолчанию для таблицы Customers (Клиенты) является UTF-8, столбец name (имя) можно определить следующим образом:

      name VARCHAR(100)

      CHARACTER SET cp1251 COLLATE cp1251_general_ci

      Если кодировка для столбца не задана, то используется кодировка, заданная для таблицы в целом (об этом вы узнаете из подраздела «Другие команды для работы с таблицами»). Если не задана кодировка и для таблицы, то используется кодировка, установленная для базы данных (см. раздел «Создание базы данных»). Наконец, если и для базы данных не была указана кодировка, то используется кодировка, установленная по умолчанию при настройке MySQL.

      Итак, мы рассмотрели типы данных, которые вы можете назначать столбцам таблицы, а также свойства, специфичные для отдельных типов столбцов: свойства UNSIGNED, ZEROFILL и AUTO_INCREMENT для числовых столбцов и свойства CHARACTER SET и COLLATE – для символьных. Перейдем теперь к свойствам, используемым независимо от типа столбцов.

      Свойства столбцов

      При создании или изменении таблицы вы можете указать следующие свойства столбцов.

      • NOT NULL.

      Это свойство указывает, что в данном столбце не допускаются неопределенные значения (NULL).

      В качестве примера рассмотрим столбец product_id (товар) таблицы Orders (Заказы) (см. листинг 2.4), который мы определили как

      product_id BIGINT UNSIGNED NOT NULL

      Тем самым мы запретили неопределенные номера товаров, поскольку регистрировать заказ с неизвестным товаром не имеет смысла.

      Если для столбца задано свойство NOT NULL, то, в частности, NULL не может использоваться в качестве значения по умолчанию для этого столбца. Значение по умолчанию, отличное от NULL, вы можете задать с помощью свойства DEFAULT <Значение>, которое описано ниже. Если же вы задали для столбца свойство NOT NULL, но не задали значение по умолчанию и не указали значение для этого столбца при вставке строки в таблицу, то поведение программы MySQL зависит от того, в каком режиме вы работаете (об этом будет подробно рассказано в подразделе «Вставка отдельных строк»).

      • NULL.

      Данное свойство указывает, что в столбце разрешены неопределенные значения (NULL). Задавать это свойство имеет смысл только для столбцов с типом TIMESTAMP, которые по умолчанию не допускают неопределенных значений. Остальные типы столбцов допускают неопределенные значения, если только для них не задано свойство NOT NULL.

      • DEFAULT <Значение>.

      Данное свойство определяет значение по умолчанию для столбца, которое используется, если при вставке строки в таблицу значение столбца не задано явно. Значением по умолчанию может быть только константа; исключение составляют столбцы с типом TIMESTAMP, для которых в качестве значения по умолчанию можно задать переменную величину CURRENT_TIMESTAMP (текущую дату и время). Нельзя установить значение по умолчанию для столбцов с типом TINYBLOB, TINYTEXT, BLOB, TEXT, MEDIUMBLOB, MEDIUM-TEXT, LONGBLOB и LONGTEXT, а также для числовых столбцов, для которых задано свойство AUTO_INCREMENT. Кроме того, нельзя СКАЧАТЬ