Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
столбцы и типы данных Раз и эксп ИС.doc
Скачиваний:
9
Добавлен:
01.03.2025
Размер:
224.26 Кб
Скачать

Типы данных

MySQL поддерживает несколько типов данных.

  • Числовые данные — к ним относят целые числа, не содержащие дробной части (например, 124), а также вещественные числа, состоящие из последовательности цифр, разделенных точкой (например, 56.45).

  • Строковые данные — последовательность символов, заключенных в одинарные или двойные кавычки: 'Hello world', '123', "MySQL". В качестве стандарта в SQL определяются одинарные кавычки, поэтому для совместимости с другими базами данных рекомендуется использовать именно их.

  • Календарные данные — специальный тип для обозначения даты и времени, может принимать различную форму, например строковую "2005-04-28" или числовую 20050428. Основной характеристикой этого типа данных является их хранение в едином внутреннем формате, позволяющем осуществлять операции сложения и вычитания, независимо от внешнего представления.

  • NULL — специальный тип данных, обозначающий отсутствие информации.

Числовые данные

Числовые данные делятся на точечные (BOOLEAN, INTEGER и DECIMAL) и приближенные (FLOAT, REAL и DOUBLE PRECISION). Характеристики и занимаемый объем точечных типов приведены в табл.1.

Таблица 1 Точечные типы

Как видно из табл. 1, СУБД MySQL имеет пять целых типов: TINYINT, SMALLINT, MEDIUMINT, INT, BIGINT. Различие между ними заключается в диапазоне величин, которые можно хранить в столбцах такого типа. Чем больше диапазон значений у типа данных, тем больше памяти для него требуется.

Целые типы данных могут быть объявлены положительными. Для этого после объявления типа следует использовать ключевое слово UNSIGNED. В этом случае элементам данного столбца нельзя будет присвоить отрицательные значения, а допустимый диапазон, который может принимать тип, удваивается. Так, тип TINYINT может принимать значения от -128 до 127, a TINYINT UNSIGNED — от 0 до 255.

При объявлении целого типа задается количество отводимых под число символов М (от 1 до 255). Это необязательное указание количества выводимых символов используется для дополнения пробелами слева от выводимых значений символов, меньших, чем заданная ширина столбца. Однако ограничений ни на диапазон величин, ни на количество разрядов не налагается. Если число символов, необходимых для вывода числа, превышает М, под столбец будет выделено больше символов. Если дополнительно указан необязательный атрибут ZEROFILL, свободные позиции по умолчанию дополняются нулями слева. Например, для столбца, объявленного как INT (5) ZEROFILL, величина 4 отображается как 00004.

Тип BIT [ (М) ] предназначен для хранения битовых полей. Параметр М указывает число битовых значений, которое может принимать поле (от 1 до 64). Если параметр М не указан, то по умолчанию принимает значение 1.

Замечание

Тип bit добавлен в MySQL, начиная с версии 5.0.3.

Тип BOOLEAN является синонимом для TINYINT (1). Значение 1 рассматривается как истина (true), a 0 как ложь (false).

Тип DECIMAL, а также его синонимы NUMERIC и DEC предназначены для величин повышенной точности, например для денежных данных. Требуемая точность задается при объявлении столбца данных одного из этих типов, например:

salary DECIMAL(5,2)

В этом примере цифра 5 определяет общее число символов, отводимых под число, а цифра 2 задает количество знаков после запятой. Следовательно, в этом случае интервал величин, которые могут храниться в столбце salary, составляет от -99,99 до 9.99 (в действительности для данного столбца MySQL обеспечивает возможность хранения чисел вплоть до 999.99, поскольку допускается не хранить знак для положительных чисел).

Величины типов DECIMAL, DEC и NUMERIC хранятся как строки, а не как двоичные числа с плавающей точкой, чтобы сохранить точность представления этих величин в десятичном виде. Если второй параметр равен 0, то величины DECIMAL и NUMERIC не содержат десятичного знака или дробной части.

Для представления вещественных типов в СУБД MySQL имеется три типа: FLOAT, DOUBLE И DECIMAL.