14.1. Типы данных
В языке SQL/89 поддерживаются
следующие типы данных: CHARACTER, NUMERIC,
DECIMAL, INTEGER, SMALLINT, FLOAT, REAL, DOUBLE PRECISION. Эти
типы данных классифицируются на
типы строк символов, точных чисел и
приблизительных чисел.
К первому классу относится CHARACTER.
Спецификатор типа имеет вид CHARACTER
(lenght), где lenght задает длину строк
данного типа. Заметим, что в SQL/89 нет
типа строк переменного размера,
хотя во многих реализациях они
допускаются. Литеральные строки
символов изображаются в виде
'последовательность символов'
(например, 'example').
Представителями второго класса
типов являются NUMERIC, DECIMAL (или DEC),
INTEGER (или INT) и SMALLINT. Спецификатор
типа NUMERIC имеет вид NUMERIC [(precision [,
scale]). Специфицируются точные числа,
представляемые с точностью precision и
масштабом scale. Здесь и далее, если
опущен масштаб, то он полагается
равным 0, а если опущена точность, то
ее значение по умолчанию
определяется в реализации.
Спецификатор типа DECIMAL (или DEC)
имеет вид NUMERIC [(precision [, scale]).
Специфицируются точные числа,
представленные с масштабом scale и
точностью, равной или большей
значения precision.
INTEGER специфицирует тип данных
точных чисел с масштабом 0 и
определяемой в реализации
точностью. SMALLINT специфицирует тип
данных точных чисел с масштабом 0 и
определяемой в реализации
точностью, не большей, чем точность
чисел типа INTEGER.
Литеральные значения точных
чисел в общем случае
представляются в форме
[+|-] <целое-без-знака>
[.<целое-без-знака>].
Наконец, в классу типов данных
приблизительных чисел относятся
типы FLOAT, REAL и DOUBLE PRECISION.
Спецификатор типа FLOAT имеет вид FLOAT
[(precision)]. Специфицируются
приблизительные числа с двоичной
точностью, равной или большей
значения precision.
REAL специфицирует тип данных
приблизительных чисел с точностью,
определенной в реализации. DOUBLE
PRECISION специфицирует тип данных
приблизительных чисел с точностью,
определенной в реализации, большей,
чем точность типа REAL.
Литеральные значения
приблизительных чисел в общем
случае представляются в виде
<литеральное-значение-точного-числа>E<целое-со-знаком>.
Заметим, что хотя с
использованием языка SQL можно
определить схему БД, содержащую
данные любого из перечисленных
типов, возможность использования
этих данных в прикладных системах
зависит от применяемого языка
программирования. Весь набор типов
данных можно использовать, только
если программировать на ПЛ/1.
Поэтому в некоторых реализациях SQL
типы данных с масштабом и точностью
вообще не поддерживаются.
Хотя правила встраивания SQL в
программы на языке Си не определены
в SQL/89, в большинстве реализаций,
поддерживающих такое встраивание,
имеется следующее соответствие
между типами данных SQL и типами
данных Си: CHARACTER соответствует
строкам Си; INTEGER соответствует long;
SMALLINT соответствует short; REAL
соответствует float; DOUBLE PRECISION
соответствует double (именно такое
соответствие утверждено в
стандарте SQL/92).
Заметим еще, что в большинстве
реализаций SQL поддерживаются
некоторые дополнительные типы
данных, например, DATE, TIME, INTERVAL, MONEY.
Некоторые из этих типов
специфицированы в стандарте SQL/92, но
в текущих реализациях
синтаксические и семантические
свойства таких типов могут
различаться.
Предыдущая
глава || Оглавление
|| Следующая глава
|