Приложение B
ТИПЫ ДАННЫХ В SQL
382 ПОНИМАНИЕ SQL
______________________________________________________________________
ПРИЛОЖЕНИЕ B
ТИПЫ ДАННЫХ РАСПОЗНАВАЕМЫЕ С ПОМОЩЬЮ
ANSI, состоят из символов и различных типов чисел, которые мо-
гут классифицироваться как точные числа и приблизительные
числа.
Точные числовые типы - это номера, с десятичной точкой или без
десятичной точки.
Приблизительные числовые типы - это номера в показательной
( экспоненциальной по основанию - 10 ) записи.
Для все прочих типов, отличия слишком малы чтобы их как-то
классифицировать.
Иногда типы данных используют аргумент, который я называю
размером аргумента, чей точный формат и значение меняется в
зависимости от конкретного типа.
Значения по умолчанию обеспечены для всех типов, если размер
аргумента отсутствует.
======== ТИПЫ ANSI =========
Ниже представлены типы данных ANSI ( имена в круглых скобках -
это синонимы ):
TEXT
ТЕКСТ
CHAR Строка текста в реализационно-определенном
(или CHARACTER) формате. Размер агрумента здесь это единств-
енное неотрицательное целое число которое
ссылается к максимальной длине строки. Значения
этого типа, должны быть заключены в одиночные
кавычки, например 'text'. Две рядом стоящие один-
очные кавычки ('') внутри строки будет пониматься
как одна одиночная кавычка (').
______________________________________________________________
ПРИМЕЧАНИЕ:
Здесь и далее, фраза Реализационно-Определенный или Реализационно-Зави-
симый, указывает, что этот аргумент или формат зависит от конкретной прогр-
аммы в которой реализуются данные.
______________________________________________________________
ТИПЫ ДАННЫХ SQL 383
______________________________________________________________________
EXACT NUMERIC
ТОЧНОЕ ЧИСЛО
DEC Десятичное число; то есть, число которое мо-
(или DECIMAL) жет иметь десятичную точку. Здесь аргумент
размера имеет две части: точность и масштаб.
Масштаб не может превышать точность.
Сначала указывается точность, разделительная
запятая и далее аргумент масштаба.
Точность указывает сколько значащих цифр
имеет число. Максимальное десятичное число
составляющее номер - реализационно-определен-
ное значение, равное или большее чем этот номер.
Масштаб указывает максимальное число цифр
справо от десятичной точки. Масштаб = нулю
делает поле эквивалентом целого числа.
NUMERIC Такое же как DECIMAL за исключением того,
что максимальное десятичное не может превыш-
ать аргумента точности.
INT Число без десятичной точки. Эквивалентно
( или INTEGER ) DECIMAL, но без цифр справа от десятичной
точки, то-есть с масштабом равным 0.
Аргумент размера не используется (он
автоматически установливается в реализацион-
но-зависимое значение).
SMALLINT Такое же как INTEGER, за исключением того,
что, в зависимости от реализации, размер
по умолчанию может ( или не может ) быть
меньшее чем INTEGER.
384 ПОНИМАНИЕ SQL
______________________________________________________________________
ПРИЛОЖЕНИЕ B
APPROXIMATE NUMERIC
ПРИБЛИЗИТЕЛЬНОЕ ЧИСЛО
FLOAT Число с плавающей запятой на основе 10
показательной функции. Аргумент размера
состоит из одного числа определяющего
минимальную точность.
REAL Такое же как FLOAT, за исключением того, что
никакого аргумента размера не используется.
Точность установлена реализационно-зависимую
по умолчанию.
DOUBLE
PRECISION Такое же как REAL, за исключением того, что
( или DOUBLE ) реализационно-определяемая точность для DOUBLE
PRECISION должна превышать реализационно
-определяемую точность REAL.
ЭКВИВАЛЕНТНЫЕ ТИПЫ
===== ДАННЫХ В ДРУГИХ ЯЗЫКАХ ======
Когда используется вложение SQL в другие языки, значения исполь-
зуемые и произведенные командами SQL, обычно сохраняются в пере-
менных главного языка( см. Главу 25 ). Эти переменные должны иметь
тип данных совместимый со значениями SQL, которые они будут полу-
чать. В дополнениях, которые не являются частью официального SQL
стандарта, ANSI обеспечивает поддержку при использовании вложения
SQL в четыре языка: Паскаль, PL/I, КОБОЛ, и ФОРТРАН.
Между прочим, он включает определение эквивалентов SQL, для данн-
ых типов переменных используемых в этих языках.
ТИПЫ ДАННЫХ SQL 385
______________________________________________________________________
Эквиваленты типов данных четырех языков определенных ANSI:
ПЛ/I
SQL ТИП ЭКВИВАЛЕНТ ПЛ/I
CHAR CHAR
DECIMAL FIXED DECIMAL
Integer fixed binary
FLOAT FLOAT BINARY
КОБОЛ
SQL ТИП ЭКВИВАЛЕНТ КОБОЛА
CHAR (<integer>) PIC X (<integer>)
INTEGER PIC S (<nines>) USAGE
COMPUTTATIONAL
NUMERIC PIC S ( < nines with embedded V > )
DISPLAY SING LEADING SEPERATE
ПАСКАЛЬ
SQL ТИП ЭКВИВАЛЕНТ ПАСКАЛЯ
Integer integer
REAL REAL
CHAR (<length>) PACKED ARRAY
[1..<length>] OF CHAR
386 ПОНИМАНИЕ SQL
______________________________________________________________________
ПРИЛОЖЕНИЕ. B
ФОРТРАН
SQL ТИП ЭКВИВАЛЕНТ ФОРТРАНА
CHAR CHAR
Integer integer
REAL REAL
DOUBLE PRECISION DOUBLE PRECISION
Приложение C
НЕКОТОРЫЕ ОБЩИЕ
НЕСТАНДАРТНЫЕ
СРЕДСТВА SQL
388 ПОНИМАНИЕ SQL
______________________________________________________________________
ПРИЛОЖЕНИЕ. C
ИМЕЕТСЯ РЯД ОСОБЕННОСТЕЙ ЯЗЫКА SQL
которые пока не определены как часть стандарта ANSI или стандарта
ISO (Международная Организация По Стандартизации), и являются
общими для многочисленных реализаций, так как они были
получены для практического использования.
Это дополнительные элементы чисел этих особенностей. Конечно, эти
особенности меняются от программы к программе, и их обсуждение
предназначено только чтобы показать некоторые общие подходы к ним.
============== ТИПЫ ДАННЫХ =================
Типы данных поддерживаемые стандартом SQL, собраны в Приложе-
нии B. Это колличество для CHARACTER и разнообразие числовых ти-
пов. Реализация их может, фактически, быть значительно сложнее чем
показано в терминах типов, которые они фактически могут использовать.
Мы будем здесь обсуждать ряд таких нестандартных типов данных.
ТИПЫ DATE И TIME
Как упомянуто в Главе 2, тип данных DATE широко поддерживается,
даже если он не часть стандарта. Мы использовали ранее в нашей
таблице Порядков, этот тип использующий формат mm/dd/yyyy.
Это стандартный формат IBM в США. Разумеется возможны и другие
форматы, и программные реализации часто поддерживают ряд форма-
тов, позволяя вам выбирать тот который лучше для вас подходит.
Реализация которая предлагает эту особенность должна быть способна
преобразовывать дату одного формата в другой - автоматически.
Имеются несколько основных форматов даты с которыми вы можете
сталкнуться:
Стандарт Формат Пример
Международная
Организация По
Стандартизации
(ISO) yyyy-mm-dd 1990-10-31
Японский
Индустриальный
Стандарт (JIS) yyyy-mm-dd 1990-10-31