Понятие тип данных в БД полностью адекватно понятию типа данных в языках программирования.
Тип данных определяет:
§ каков размер области памяти, занимаемой объектом;
§ как интерпретируется эта память;
§ какие действия можно выполнять с этим объектом.
В SQL используются следующие основные типы данных, форматы которых могут несколько различаться для разных СУБД:
а) символьные типы данных – содержат буквы, цифры и специальные символы:
· CHAR или CHAR(n) – символьные строки фиксированной длины. Длина строки определяется параметром n. CHAR без параметра соответствует CHAR(1). Для хранения таких данных всегда отводится n байт вне зависимости от реальной длины строки;
· VARCHAR(n) – символьная строка переменной длины. Для хранения данных этого типа отводится число байт, соответствующее реальной длине строки;
б) целые типы данных – поддерживают только целые числа (дробные части и десятичные точки не допускаются). Над этими типами разрешается выполнять арифметические операции и применять к ним агрегирующие функции (определение максимального, минимального, среднего и суммарного значения столбца реляционной таблицы):
· INTEGER или INT– целое, для хранения которого отводится, как правило, 4 байта. (Замечание: число байт, отводимое для хранения того или иного числового типа данных зависит от используемой СУБД и аппаратной платформы.) Интервал значений от – 2147483647 до + 2147483648;
· SMALLINT – короткое целое (2 байта), интервал значений от – 32767 до +32768;
в) вещественные типы данных – описывают числа с дробной частью:
· FLOAT и SMALLFLOAT – числа с плавающей точкой (для хранения отводится обычно 8 и 4 байта соответственно);
· DECIMAL(p) – тип данных аналогичный FLOAT с числом значащих цифр p;
· DECIMAL(p,n) – аналогично предыдущему, p – общее количество десятичных цифр, n – количество цифр после десятичной запятой;
г) денежные типы данных – описывают, естественно, денежные величины. Если ваша система такого типа данных не поддерживает, то используйте DECIMAL(p,n):
· MONEY(p,n) – все аналогично типу DECIMAL(p,n). Вводится только потому, что некоторые СУБД предусматривают для него специальные методы форматирования;
д) дата и время – используются для хранения даты, времени и их комбинаций. Большинство СУБД умеет определять интервал между двумя датами, а также уменьшать или увеличивать дату на определенное количество времени:
· DATE – тип данных для хранения даты;
· TIME – тип данных для хранения времени;
· DATETIME – тип данных для хранения моментов времени (год + месяц + день + часы + минуты + секунды + доли секунд);
е) двоичные типы данных – позволяют хранить данные любого объема в двоичном коде (оцифрованные изображения, исполняемые файлы и т.д.); Определения этих типов наиболее сильно различаются от системы к системе, часто используются ключевые слова: