120
Часть II. Структурированный язык запросов SQL
Типы данных, которые согласно стандарту ANSI/ISO мо-
гут присутствовать в языке SQL, состоят из символов и раз-
личных типов чисел. В свою очередь, последние можно разде-
лить на точные числа и приблизительные числа. Точные число-
вые типы -• это номера с десятичной точкой или без таковой.
Приблизительные числовые типы - это номера в показатель-
ной записи. Для других типов данных отличия не являются
существенными.
Часто типы данных используют значение, который называют
размером аргумента, чей точный формат и значение меняется в за-
висимости от конфетного типа. Значения по умолчанию обеспече-
ны для всех типов данных, если размер аргумента отсутствует.
Для текстовых данных используется тип данных СНАЩдлина)
(или CHARACTER) - это строка текста, причем размер аргумента
здесь это единственное неотрицательное целое число, которое опре-
деляет максимальную длину строки. Значения этого типа, должны
быть заключены в одиночные кавычки, например 'text'. Две рядом
стоящие одиночные кавычки (") внутри строки будут пониматься
как одна одиночная кавычка (')•
В SQL2 допускается использование типа VARCHAR(»nraa)
(или CHARACTER VARYNG), позволяющего задавать строки
переменной длины. Кроме того, в этом стандарте существуют
типы данных NCHARCapnraa) (или NATIONAL CHARACTER) -
строки символов постоянной длины национальных алфавитов
(локализовавших символов) и NCHAR VARYNGOoraHa) (или
NATIONAL CHARACTERVARYNG) - строки легализованных
символов переменной длины.
Для точных чисел могут быть использованы следующие типы
данных:
• DEC(TO4HOCTb, степень) (или DECIMAL) - это десятичное
число, т.е. число, которое может иметь десятичную точ-
ку. Здесь аргумент размера имеет две части: точность и
степень, причем степень не может превышать точность.
Точность указывает на то, сколько значащих цифр имеет
число. Степень указывает максимальное число цифр
справа от десятичной точки. Если степень равна нулю, то
будет получен эквивалент целого числа;
• NUMERIC - аналог DECIMAL, за исключением того, что
максимальное десятичное не может превышать аргумента
точности;
Глава 2.1. Введение в SQL
121
• INT (или INTEGER) - представляет собой число без де-
сятичной точки. Фактически является эквивалентом
DECIMAL, но без цифр справа от десятичной точки, т.е.
со степенью, равной нулю. Здесь аргумент размера не
используется;
• SMALLINT - аналог INTEGER, за исключением того, что,
в зависимости от реализации, размер по умолчанию мо-
жет быть меньше, чем INTEGER.
Приблизительные числа могут быть описаны такими типами:
• FLOAT(TO4HOCTb) - число с плавающей точкой на основе
показательной функции. Аргумент точность состоит из
одного числа, определяющего минимальную точность;
• REAL - аналог FLOAT, за исключением того, что никако-
го аргумента размера не используется, а заданная точ-
ность устанавливается по умолчанию;
• DOUBLE PRECISION (или DOUBLE) - эквивалент REAL,
за исключением того, что точность для DOUBLE
PRECISION должна превышать заданную точность REAL.
Для хранения данных, характеризующих время, используется
тип Т1МЕ(точность), а согласно SQL2 может быть использован
специальный тип Т1МЕ8ТАМР(точность) для данных, содержа-
щих дату и время. Здесь точность определяет представление вре-
мени, например, десятые доли секунды. Наконец, для хранения
временного интервала можно использовать тип INTERVAL.
Для считывания и хранения неструктурированных потоков бай-
тов можно использовать типы данных ВЩдлина) и BIT
VARYNGCajnffla), соответственно для строк битов постоянной и
переменной длины. Эти типы могут быть использованы, например,
для хранения графических изображений или исполняемого кода.
Если имеется вложение SQL в другие языки программирования,
то значения, используемые и произведенные командами SQL, обыч-
но сохраняются в переменных главного языка, а значит, эти пере-
менные должны иметь тип данных, совместимый со значениями
SQL, которые они будут получать. В дополнениях, которые не яв-
ляются частью официального SQL стандарта, ANSI обеспечивает
поддержку при использовании вложения SQL в четыре языка: Пас-
каль, Р1Л, КОБОЛ, и ФОРТРАН.
В SQL имеется ряд операторов, с помощью которых реализуются
воз возможности языка. Их краткое описание приведено в приложе-
нии Б Итак, краткое введение в SQL сделано, ниже поговорим более
подробно о реализации операторов при работе с данными.