Поля и их типы в MySQL
База данных с точки зрения MySQL (и некоторых других СУБД) - это обыкновенный каталог, содержащий двоичные файлы определенного формата - таблицы. Таблицы состоят из записей, а записи, в свою очередь, состоят из полей. Поле имеет два атрибута - имя и тип.
Тип поля может быть:
- Целым;
- Вещественным;
- Строковым;
- Бинарным;
- Дата и время;
- Перечисления и множества.
Возможные типы данных, диапазоны и описания представлены в последующих таблицах:
Целочисленные типы данных
Тип |
Диапазон |
TINYINT |
-128...+127 |
SMALLINT |
-32768...+32767 |
MEDIUMINT |
-8 388 608...+8 388 607 |
INT |
-2 147 483 648...+2 147 483 647 |
BIGINT |
-9 223 372 036 854 775 808...+9 223 372 036 854 775 807 |
Вещественные типы записываются в виде:
ТИП (ДЛИНА, ЗНАКИ) [UNSIGNED]
Длина - это колличество знакомест, в которых будет размещено все число при его передаче, а ЗНАКИ - это колличество знаков после десятичной точки, которые будут учитываться. Если указан модификатор UNSIGNED, знак числа учитываться не будет.
Вещественные числа
Тип |
Описание |
FLOAT |
Небольшая точность |
DOUBLE |
Двойная точность |
REAL |
То же, что и DOUBLE |
DECIMAL |
Дробное число, хранящееся в виде строки |
NUMERIC |
То же, что и DECIMAL |
Любая строка - это массив символов. При поиске с помощью оператора SELECT (мы рассмотрим его далее) не учитывается регистр символов: строки "HELLO" и "Hello" считаются одинаковыми.
Можно настроить MySQL на автоматическое перекодирование символов - в этом случае в базе данных строки будут храниться в одной кодировке, а выводиться - в другой.
В большинстве случаев применяется тип VARCHAR или просто CHAR, позволяющий хранить строки, содержащие до 255 символов. В скобках после типа указывается длина строки:
VARCHAR(48);
CHAR(73);
Если 255 символов для вашей задачи недостаточно, можно использовать другие типы, например, TEXT.
Строки
Тип |
Описание |
TINYTEXT |
Максимальная длина 255 символов |
TEXT |
Максимальная длина 65535 символов (64 Кб) |
MEDIUMTEXT |
Максимальная длина 16 777 215 символов |
LONGTEXT |
Максимальная длина 4 294 967 295 символов |
Бинарные типы данных также можно использовать для хранения текста, но при поиске будет учитываться регистр символов. К тому же, любой текстовый тип можно преобразовать в бинарный, указав модификатор BINARY:
VARCHAR(30) BINARY;
Бинарные типы данных
Тип |
Описание |
TINYBLOB |
Максимум 255 символов |
BLOB |
Максимум 65535 символов |
MEDIUMBLOB |
Максимум 16 777 215 символов |
LONGBLOB |
Максимум 4 294 967 295 |
Примечание: Бинарные данные не перекодируются "на лету", если установлена перекодировка символов.
Дата и время
Тип |
Описание |
DATE |
Дата в формате ГГГ-ММ-ДД |
TIME |
Время в формате ЧЧ:ММ:СС |
TIMESTAMP |
Дата и время в формате timestamp, выводится в виде ГГГГММДДЧЧММСС |
DATETIME |
Дата и время в формате ГГГГ-ММ-ДД ЧЧ:ММ:СС |
Другие типы данных MySQL рассматривать бессмысленно, поскольку применение их в PHP нецелесообразно.