Создание структуры БД и манипулирование данными в СУБД MySQL. Пономарев А.А. - 65 стр.

UptoLike

Составители: 

Чтобы получить более полную информацию о свойствах различных типов столбцов,
см. документацию к СУБД.
Если не указывается ни NULL, ни NOT NULL, то столбец интерпретируется так,
как будто указано NULL.
Целочисленный столбец может иметь дополнительный атрибут
AUTO_INCREMENT. При записи величины NULL (рекомендуется) или 0 в столбец
AUTO_INCREMENT данный столбец устанавливается в значение value+1, где
value представляет собой наибольшее для этого столбца значение в таблице на момент
записи. Последовательность AUTO_INCREMENT начинается с 1. Если удалить строку,
содержащую максимальную величину для столбца AUTO_INCREMENT, то в таблицах
типа ISAM или BDB эта величина будет восстановлена, а в таблицах типа MyISAM или
InnoDB - нет. Если удалить все строки в таблице командой DELETE FROM
table_name (без выражения WHERE) в режиме AUTOCOMMIT, то для таблиц всех ти-
пов последовательность начнется заново.
Примечание: в таблице может быть только один столбец AUTO_INCREMENT, и
он должен быть индексирован. Кроме того, версия MySQL 3.23 будет правильно работать
только с положительными величинами столбца AUTO_INCREMENT. В случае внесения
отрицательного числа оно интерпретируется как очень большое положительное число. Это
делается, чтобы избежать проблем с точностью, когда числа ''заворачиваются'' от положи-
тельного к отрицательному и, кроме того, для гарантии, что по ошибке не будет получен
столбец AUTO_INCREMENT со значением 0.
Величины NULL для столбца типа TIMESTAMP обрабатываются иначе, чем для
столбцов других типов. В столбце TIMESTAMP нельзя хранить литерал NULL; при уста-
новке данного столбца в NULL он будет установлен в текущее значение даты и времени.
Поскольку столбцы TIMESTAMP ведут себя подобным образом, то атрибуты NULL и
NOT NULL неприменимы в обычном режиме и игнорируются при их задании. С другой
стороны, чтобы облегчить клиентам MySQL использование столбцов TIMESTAMP, сервер
сообщает, что таким столбцам могут быть назначены величины NULL (что соответствует
действительности), хотя реально TIMESTAMP никогда не будет содержать величины
NULL. Это можно увидеть, применив DESCRIBE tbl_name для получения описания
данной таблицы. Следует учитывать, что установка столбца TIMESTAMP в 0 не равно-
значна установке его в NULL, поскольку 0 для TIMESTAMP является допустимой ве-
личиной.
Величина DEFAULT должна быть константой, она не может быть функцией или вы-
ражением. Если для данного столбца не задается никакой величины DEFAULT, то MySQL
автоматически назначает ее. Если столбец может принимать NULL как допустимую ве-
личину, то по умолчанию присваивается значение NULL. Если столбец объявлен как NOT
NULL, то значение по умолчанию зависит от типа столбца: для числовых типов, за исклю-
чением объявленных с атрибутом AUTO_INCREMENT, значение по умолчанию равно 0.
Для столбца AUTO_INCREMENT значением по умолчанию является следующее значение
в последовательности для этого столбца.
Для типов даты и времени, отличных от TIMESTAMP, значение по умолчанию рав-
но соответствующей нулевой величине для данного типа. Для первого столбца
TIMESTAMP в таблице значение по умолчанию представляет собой текущее значение
даты и времени.
65