Календарные данные в 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 байта.

 

Строковые данные в MySQL.

Строковые данные (String Types) в MySQL.

В MySQL существует несколько типов символических данных (строковых). Понятие “строки”, которые могут храниться в таких столбцах MySQL, является общим в том смысле, что это могут быть не только строки символов (текстовые данные), но и какие-то двоичных данные, например, изображения или аудио файлы.

Текстовые строковые данные.

 CHAR  для хранения данных фиксированной длины
 VARCHAR  для хранения данных переменной длины
 TEXT  для хранения данных переменной длины

Типы char и varchar самые распространенные. Единственное отличие между ними, что первый тип с фиксированной длиной, второй – с переменной. При сохранении в поле char более короткого значения, оно дополняется пробелами справа. Эти пробелы отсекаются при выборке. Значения типа varchar занимают столько байт, сколько нужно для их хранения плюс один байт для сохранения длины строки. Continue reading

Цифровые данные в MySQL.

Цифровые (Numeric) данные в MySQL.

В MySQL cуществуют следующие классы цифровых данных (Numeric Data Types):

  • целые (Integer), не имеют дробной части;
  • с плавающей запятой (Floating-Point), могут иметь целую и дробную часть. Очень эффективный формат для компьютерных расчетов, но значение числа имеет ошибку округления;
  • с фиксированной запятой (Fixed-Point). Также могут иметь целую и дробную часть, но в отличии от предыдущего случая в таком поле сохраняется точное значение числа. Данный тип используется, например, для денежных расчетов;
  • бит (Bit). Данный тип используется для сохранения значений в виде битовой карты. bit(n) сохраняет значение из n-бит. n может устанавливаться в интервале от 1 до 64.

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

Класс Тип Описание
Integer TINYINT  Целые значения, отличаются количеством байт,  которые необходимы, чтобы сохранить данное значение в памяти, и диапазоном возможных значений
Integer SMALLINT
Integer MEDIUMINT
Integer INT
Integer BIGINT
Floating-Point FLOAT  Одинарной точности с плавающей запятой
Floating-Point DOUBLE  Двойной точности с плавающей запятой
Fixed-Point DECIMAL  Точное значение с фиксированной запятой
BIT BIT  Значение в виде битовой карты