Другие целочисленные типы

Кроме описанного выше типа INT, предназначенного для хранения целых чисел, существуют и другие целочисленные типы, которые будут рассмотрены в этом разделе. Для хранения значений мы рекомендуем всегда выбирать самые маленькие типы. Например, если вам нужно сохранить значение возраста, выберите вместо стандартного 1NT тип TINYINT. Более маленькие типы требуют меньше места для хранения, позволяя смягчить требования относительно дискового пространства и памяти, а также ускорить извлечение данных с диска. Настройка типа столбца является ключевым этапом, который применяют профессиональные настройщики баз данных для оптимизации приложений.

Представляя далее список целочисленных типов, хотим обратить ваше внимание, что к ним применяются те же основные правила, что и к типу INT.

BOOLEAN. Введенный в версии MySQL 4.1, этот тип хранит булево значение false (нуль) или true (не нуль). Например, его можно использовать для хранения данных о персоне — жив он (true) или уже умер (false), активности (true) или пассивности (false) клиента, либо его желании (true) или нежелании (false) получать письма по электронной почте. Тип BOOLEAN имеет синонимы BOOL и BIT. Он эквивалентен типу TINYINT(V) и требует один байт для хранения. Можно получить более компактные однобитные булевы значения с помощью типа CHAR(0), описанного ранее.

TINYINT [(ширина)] [UNSIGNED] [ZEROFILL]. Хранит целочисленные значения в диапазоне от -128 до 127. Атрибуты ширина, UNSIGNED и ZEROFILL ведут себя точно так же, как и в случае с типом INT. При использовании атрибута UNSIGNED столбец может хранить значения в диапазоне от 0 до 255. Значение типа TINYINT требует один байт для хранения.

SMALLINT [(ширина)] [UNSIGNED] [ZEROFILL]. Хра нит целочисленные значения в диапазоне от -32 768 до 32 767. Атрибуты ширина, UNSIGNED и ZEROFILL ведут себя точно так же, как и в случае с типом INT. При использовании атрибута UNSIGNED столбец может хранить значения в диапазоне от 0 до 65 535. Значение типа SMALLINT требует два байта для хранения.

MEDIUMINT [(ширина)] [UNSIGNED] [ZEROFILL]. Хранит целочисленные значения в диапазоне от -8 388 608 до 8 388 607. Атрибуты ширина, UNSIGNED и ZEROFILL ведут себя точно так же, как и в случае с типом INT. При использовании атрибута UNSIGNED столбец может хранить значения от 0 до 16 777 215. Значение типа MEDIUMINT требует три байта для хранения.

BIGINT [(ширина)] [UNSIGNED] [ZEROFILL]. Хранит целочисленные значения в диапазоне -9 223 372 036 854 775 808 до 9 223 372 036 854 775 807. Атрибуты ширина, UNSIGNED и ZEROFILL ведут себя точно так же, как и в случае с типом INT. При использовании атрибута UNSIGNED столбец может хранить значения в диапазоне от 0 до 18 446 744 073 709 551 615. Значение типа BIGINT требует для хранения восемь байтов.

Другие рациональные числовые типы

DOUBLE (также известный как REAL) и FLOAT. Они предназначены для хранения приближенных числовых значений в отличие от типа DECIMAL, использующегося для хранения точных значений. Для чего нужны приближенные значения? Ответ следующий: большое количество знаков после запятой позволяет аппроксимировать реальные числа.

Предположим, что при заработке 50 000 долларов в год нужно распределить эту сумму по месяцам. После преобразования в ежемесячную зарплату получим 4 166 долларов и 2/3 цента. Сохранить это число как 4 166,67 будет не совсем точно, поскольку при перемножении чисел 4 166,67 и 12 получится годовой оклад в 50 000,04 доллара. Однако если сохранить 2/3 с достаточным количеством знаков после запятой, то получим более точное приближение, при перемножении которого в такой высокоточной среде, как MySQL будет получено исходное значение. Для подобных случаев и используются типы DOUBLE и FLOAT, поскольку они позволяют хранить такие значения, как 2/3 от числа, т.е. с большим количеством знаков после запятой, а также разрешают корректно представлять приближенные значения точных величин.

 
Посмотреть оригинал
< Пред   СОДЕРЖАНИЕ ОРИГИНАЛ   След >