Строки
Строки представляют собой массивы символов. Обычно при поиске по текстовым полям по запросу SELECT не берется в рассмотрение регистр символов, т.е. строки "Вася" и "ВАСЯ" считаются одинаковыми. Кроме того, если база данных настроена на автоматическую перекодировку текста при его помещении и извлечении (см. ниже), эти поля будут храниться в указанной вами кодировке.
Для начала давайте ознакомимся с типом строки, которая может хранить не более length символов, где length принадлежит диапазону от 1 до 255.
VARCHAR(length) [BINARY]
При занесении некоторого значения в поле такого типа из него автоматически вырезаются концевые пробелы (как будто по вызову функции rtrim()). Если указан флаг BINARY, то при запросе SELECT строка будет сравниваться с учетом регистра. Тип VARCHAR неудобен тем, что может хранить не более 255 символов. Вместо него я рекомендую использовать другие текстовые типы, перечисленные в табл. 26.3.
Таблица 26.3. Строковые типы данных таблиц MySQL
Тип | Описание | ||
TINYTEXT
| Может хранить максимум 255 символов | ||
TEXT | Может хранить не более 65 535 символов | ||
MEDIUMTEXT | Может хранить максимум 16 777 215 символов | ||
LONGTEXT | Может хранить 4 294 967 295 символов |
Чаще всего применяется тип TEXT, но если вы не уверены, что данные не будут всегда короче 65 536 байтов, используйте LONGTEXT.
Слухи о том, что TEXT-типы занимают намного больше места, чем аналогичные VARCHAR-ïîëÿ, сильно преувеличены.