Тип DOUBLE имеет два синонима: PRECISION и REAL. Тип DECIMAL имеет синоним NUMERIC
Характеристики приближенных типов представлены в табл. 2.
Таблица 2. Приближенные типы
Диапазон вещественных чисел помимо максимального значения имеет также минимальное значение, которое характеризует точность данного типа. Параметр М в табл. 2 задает число символов для отображения всего числа, a D— для его дробной части.
Числовые типы данных с плавающей точкой также могут иметь параметр UNSIGNED. Как и в целочисленных типах, этот атрибут предотвращает хранение в отмеченном столбце отрицательных величин, но, в отличие от целочисленных типов, максимальный интервал для величин столбца остается прежним.
При выборе столбцов для формирования структуры таблицы необходимо обращать внимание на размер, занимаемый тем или иным типом данных: если значения, размещаемые в базе данных, никогда не будут выходить за пределы 100, не следует выбирать тип больше TINYINT. Если же в полях столбца предполагается хранить только целочисленные данные, то применение атрибута UNSIGNED позволит увеличить диапазон в два раза.
Для строковых типов данных максимальный размер и требования к памяти приведены в табл. 3. Здесь L— это длина хранимой в ячейке строки, а байты, приплюсованные к L, — накладные расходы для хранения длины строки.
Таблица 3. Строковые типы данных
Тип CHAR позволяет хранить строку фиксированной длины М, его дополняет тип VARCHAR, позволяющий хранить переменные строки длиной L. Значение М может принимать значения от 0 до 65535.
До версии MySQL 5.0.3 значение м для типов char и varchar могло принимать значения только от 0 до 255.
При выборе строкового типа данных для столбца следует принимать во внимание, что для переменных строк VARCHAR требуется количество символов, равное длине строки плюс один байт, в то время как тип CHAR(M), независимо от длины строки, использует для ее хранения все М символов. В то же время тип CHAR обрабатывается эффективнее переменных типов, т.к. всегда заранее известно, где заканчивается очередной блок данных. Сравнение типов CHAR и VARCHAR приведено в табл. 4.
Таблица 4. Сравнение типов CHAR и VARCHAR
При создании таблицы нельзя смешивать столбцы типа CHAR и VARCHAR. Если такое происходит, СУБД MySQL изменит тип столбцов согласно правилу: в случае, когда в таблице присутствует хоть один столбец переменной длины, все столбцы типа CHAR приводятся к типу VARCHAR.