| |
адает, что будет создано поле для хранения
беззна-
ковых чисел (больших или равных 0). Имена типов, в вобщем виде обозначенные
здесь как префиксINT, приводятся в табл. 26.1.
Таблица 26.1. Типы целочисленных данных MySQL.
Тип Описание
TINYINT Может хранить числа от –128 до +127
SMALLINT Диапазон от –32 768 до 32 767
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
Дробные числа
Точно так же, как целые числа подразделяются в MySQL на несколько разновидно-
стей, MySQL поддерживает и несколько типов дробных чисел.
В общем виде они записываются так:
ИмяТипа[(length,decimals)] [UNSIGNED]
Здесь length — количество знакомест (ширина поля), в которых будет размещено
дробное число при его передаче в PHP, а decimals — количество знаков после
деся-
тичной точки, которые будут учитываться. Как обычно, UNSIGNED задает беззнако-
вые числа. Строка ИмяТипа замещается на предопределенные значения, соответст-
вующие возможным вариантам представления вещественных чисел (табл. 26.2).
Таблица 26.2. Типы рациональных чисел в MySQL
Тип Описание
FLOAT Число с плавающей точкой небольшой точности
DOUBLE Число с плавающей точкой двойной точности
REAL Синоним для DOUBLE
DECIMAL Дробное число, хранящееся в виде строки
NUMERIC Синоним для DECIMAL
Часть IV. Стандартные функции PHP 368
Строки
Строки представляют собой массивы символов. Обычно при поиске по текстовым
полям по запросу 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-поля, сильно преувеличены.
Бинарные данные
Бинарные данные — это почти то же самое, что и данные в формате TEXT, но только
при поиске в них учитывается регистр символов ("abc" и "ABC" — разные строки).
Вего имеется 4 типа бинарных данных (табл. 26.4).
Таблица 26.4. Типы бинарных данных, используемые в MySQL
Глава 26. Работа с базой данных MySQL 369
Тип Описание
TINYBLOB Может хранить максимум 255 символов
BLOB Может хранить не более 65 535 символов
MEDIUMBLOB Может хранить максимум 16 777 215 символов
LONGBLOB Может хранить 4 294 967 295 символов
BLOB-данные не перекодируются автоматически, если при работе с установленным
соединением включена возможность перекодирования текста "на лету" (см. ниже).
Дата и время
MySQL поддерживает несколько типов полей, специально приспособленных для хра-
нения дат и времени в различных форматах (табл. 26.5).
Таблица 26.5. Представление дат и времени в базах данных MySQL
Тип Описание
DATE Дата в формате ГГГГ-ММ-ДД
TIME Время в формате ЧЧ:ММ:СС
DATETIME Дата и время в формате ГГГГ-ММ-ДД ЧЧ:ММ:СС
TIMESTAMP Время и дата в формате timestamp. Однако при получе-
нии значения поля оно отображается не в формате timestamp,
а в виде ГГГГММДДЧЧММСС, что сильно умаляет
преимущества его использования в PHP
Надо заметить, что в PHP будет проще самостоятельно генерировать дату и время
при
вставке данных в таблицу, а не задействовать встроенные в MySQL типы. Например,
привлекательный с виду тип TIMESTAMP на деле оказывается довольно неудобным,
потому что отображается не в том виде, который мы ожидаем.
Перечисления и множества
MySQL поддерживает еще несколько специфических типов данных, использ
|
|