Атрибуты столбцов.

Атрибуты столбцов в таблицах MySQL.

Для того, чтобы создать таблицу в MySQL, необходимо выполнить команду CREATE TABLE. При создании таблицы указываются имена столбцов, их тип, а также могут указываться атрибуты столбцов.

CREATE TABLE TAB1 (

id             INT            UNSIGNED NOT NULL,

name      CHAR(10)   CHARACTER SET  utf8,

dd            DATE    DEFAULT ‘2012-01-01’);

В приведенном выше примере красным цветом выделены атрибуты столбцов.

Существуют следующие категории (типы) атрибутов столбцов: цифровые, строковые и общие (для всех типов данных). Это приведено в следующей таблице.

Тип Атрибут Описание
Numeric UNSIGNED Определяет, что значение в стобца может быть только положительным
Integer-only AUTO_INCREMENT Генерируется последовательность уникальных целых значений для этого столбца
String CHARACTER SET Определяет кодировку столбца
String COLLATE Определяет правила сортировки значений в столбце
String BINARY Определяет, что со столбцом надо оперировать, как с двоичной строкой
All* NULL или NOT NULL Определяет может ли столбец содержать значения NULL или нет
All DEFAULT Определяет значение по умолчанию для данного столбца, когда при вставке новых записей его значение не определено

* – за исключением столбцов типа TIMESTAMP.

 

Календарные данные в MySQL.

Календарные данные в MySQL (Temporal Data Types).

Используются для хранения значений даты, времени, года или их комбинаций. Типы календарных данных свдены в следующей таблице.

 Тип  Кол-во байт  Описание
 DATE  3   YYYY-MM-DD – 2013-10-16
 TIME  3   hh:mm:ss – 15:26:41
 DATETIME  8   YYYY-MM-DD hh:mm:ss – 2013-10-16 15:26:41
 TIMESTAMP  4   YYYYMMDDhhmmss – 20131016152641
 YEAR  1   YYYY – 2013

YYYY, MM, DD, hh, mm, ss – это соответственно значение года, месяца, дня, часов, минут и секунд.

Тип  TIMESTAMP предназначен для хранения дат в диапазоне от начала 1970 года (1970-01-01 00:00:00), до какой-то неопределенной даты в 1937 году. 1-е января 1970 года условно принято за начало эпохи Unix. Другими словами в данном типе сохраняется количество секунд, прошедших с 1 января 1970 по текущее время по усредненному времени Гринвича.

Верхнее значение диапазона типа данных TIMESTAMP возрастает по мере роста верхнего предела диапазона временных, значений в ОС UNIX. Это все сделано на уровне системных библиотек.

Отличие типа TIMESTAMP от DATETIME следующее:

  • Столбец типа TIMESTAMP может быть автоматически заполнен значением по умолчанию, которое соответствует текущей дате и времени на компьютере, если при операциях Insert или Update не указывать явно значение для данного столбца.
  • При получении из базы будет отображаться с учетом часового пояса.
  • Для хранения использует 4 байта.