3.4.9.1. Типы данных SQL
Рассмотрим основные типы данных, используемые в СУБД Oracle.
Символьные типы данных – содержат буквы, цифры и специальные символы.
CHAR или CHAR(n) – символьные строки фиксированной длины. Длина строки определяется параметром n. CHAR без параметра соответствует CHAR(1). Для хранения таких данных всегда отводится n байт вне зависимости от реальной длины строки.
VARCHAR2 – символьная строка переменной длины. Для хранения данных этого типа отводится число байт, соответствующее реальной длине строки.
Целые типы данных – поддерживают только целые числа (дробные части и десятичные точки не допускаются). Над этими типами разрешается выполнять арифметические операции и применять к ним агрегирующие функции (определение максимального, минимального, среднего и суммарного значения столбца реляционной таблицы).
INTEGER, или INT, – целое, для хранения которого отводится, как правило, 4 байта. Интервал значений от - 2147483647 до + 2147483648.
Вещественные типы данных – описывают числа с дробной частью.
FLOAT – числа с плавающей точкой (для хранения отводится обычно 8 и 4 байта соответственно).
DECIMAL(p) – тип данных, аналогичный FLOAT, с числом значащих цифр p.
DECIMAL(p,n) – аналогично предыдущему, p – общее количество десятичных цифр, n – количество цифр после десятичной запятой.
NUMBER(p,n) – применяется для хранения вещественных и целых чисел.
Дата и время – используются для хранения комбинации даты и времени. Большинство СУБД умеет определять интервал между двумя датами, а также уменьшать или увеличивать дату на определенное количество времени.
DATE – тип данных для хранения даты и времени (год + месяц + день + часы + минуты + секунды + доли секунд).
BLOB – позволяет хранить данные любого объема в двоичном коде (оцифрованные изображения, исполняемые файлы и т.д.).
В заключение следует сказать, что для всех типов данных существует общее значение NULL – не определено. Это значение имеет каждый элемент столбца до тех пор, пока в него не будут введены данные. При создании таблицы можно явно указать СУБД, могут ли элементы того или иного столбца иметь значения NULL (это недопустимо, например, для столбца, являющего первичным ключом).