Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Модели данных и СУБД.doc
Скачиваний:
0
Добавлен:
01.03.2025
Размер:
1.71 Mб
Скачать

12.2. Типы данных языка sql.

К наиболее часто используемым типам данных относятся символьные, числовые, тип DATE, двоичные и большие объекты.

Символьные типы данных представлены следующими типами:

CHAR(длина), VARCHAR2(длина) и LONG.

Тип данных CHAR представляет собой символьные строки фиксированной длины. Минимальная длина равна 1, максимальная – 2000 байт. Если значение, помещаемое в столбец данного типа, превосходит указанный размер, то выводится сообщение об ошибке; если длина помещаемого значения меньше указанной длины, то значение дополняется пробелами справа.

Тип данных VARCHAR2 представляет собой символьные строки переменной длины. Максимальный размер строки 4000 байт, минимальный – 1 байт. При помещении текста в столбец большего размера дополнение пробелами не производится.

Строки этих двух типов сравниваются по-разному. Строки типа CHAR – посимвольно с дополнением пробелами строки с меньшей длиной до размера строки с большей длиной. Строки VARCHAR2 – без дополнения пробелами до большей длины. Поэтому для двух в принципе одинаковых строк могут быть получены различные результаты при их сравнении.

Пример. Для двух строк “AB” и “AB ” (вторая строка содержит пробел, а первая нет) типа CHAR получим, что “AB” = “AB ”. Для этих же строк типа VARCHAR2 результатом сравнения будет “AB” < “AB ”.

Тип данных LONG представляет собой символьные данные переменной длины, величина которой может достигать 2 Гб. На использование переменных этого типа накладывается ряд ограничений: столбец такого типа должен быть единственным в таблице, его нельзя индексировать, использовать в качестве ключа упорядочения и в операциях группирования, а также для построения условий.

Числовые типы представлены типом NUMBER, который позволяет определить три различных типа данных:

NUMBER, NUMBER(p), NUMBER(p, s).

В первом случае определяются действительные числа, диапазон которых от 1.0*10­–130 до 1.0*10126–1, мантисса содержит 38 знаков. Во втором случае считается, что определяется диапазон целых чисел, где p – количество цифр в числе (от 1 до 38). В третьем случае описываются числа с фиксированной точкой; p – общее количество цифр (от 1 до 38), s – масштаб (от –84 до 127) – определяет количество цифр после запятой. Если s > 0, то число округляется до указанного числа знаков справа от десятичной точки, если s < 0, то число округляется до указанного числа знаков слева от десятичной точки.

Пример. Значение 123.89, помещенное в переменную с типом NUMBER(5,1) будет округлено до значения 123.9, а при помещении в переменную с типом NUMBER(5, –1) будет округлено до 120.

Следует отметить, что язык SQL поддерживает типы данных стандарта ANSI SQL. Если такой тип данных (INTEGER, SMALLINT, DECIMAL, FLOAT и REAL и т. д.) встречаются при определении типа столбца таблицы, то имя типа сохраняется, но сами данные хранятся в виде, определяемом одним из типов базы данных Oracle.

Тип данных DATE представляет собой специальным образом организованный тип. Он хранит столетие, год, месяц, день, часы, минуты, секунды. Для выборки текущего дня и времени в стандартном формате используется функция SYSDATE. Стандартный формат даты, автоматически преобразуемый во внутреннее представление, записывается символьной строкой следующего вида: 'DD–MON–YY', где DD – день месяца, MON – краткое название месяца, а YY – значение года.

Пример. Строка символов '11–JAN–04' будет представлять дату 11 января 2004 года.

Над переменными типа DATE можно выполнить арифметическое действие – вычитание. Результат операции определяет количество дней между этими двумя датами. К дате можно прибавить или отнять числовую константу, рассматриваемую как количество дней или часть дня.

Пример. Для добавления месяца к текущей дате необходимо записать SYSDATE+30, а для добавления часа необходимо записать SYSDATE+1/24.

Двоичные типы данных. Данные этого типа используются для хранения двоичных неструктурированных данных (звуковые файлы, файлы изображений и т. д.), обработка которых не поддерживается системой ORACLE. К ним относятся типы RAW(длина) и LONGRAW. Максимальный размер строки типа RAW 2000 байт, минимальный – 1 байт. Длина переменных типа LONGRAW может достигать 2 Гб.

Большие объекты (LOB-объекты). К этим типам относятся CLOB, BLOB и BFILE и предназначены они для хранения неструктурированных данных большого объема – до 4 Гб. Тип CLOB хранит данные символьного типа, типы BLOB и BFILE используют для хранения двоичных данных. Столбцы типа LOB содержат не сами данные, а указатели на их местоположение. При этом, типы CLOB и BLOB хранятся в специальных сегментах БД, а тип BFILE, являющийся внешним двоичным файлом, хранится как обычный файл. На их использование наложен ряд ограничений.