Перейти к оглавлению
Приложение B
-------------
ТИПЫ ДАННЫХ В SQL
ТИПЫ ДАННЫХ РАСПОЗНАВАЕМЫЕ С ПОМОЩЬЮ ANSI, состоят из символов и
различных типов чисел, которые могут классифицироваться как точные
числа и приблизительные числа. Точные числовые типы - это номера, с
десятичной точкой или без десятичной точки. Приблизительные числовые
типы - это номера в показательной (экспоненциальной по основанию - 10)
записи.
Для все прочих типов, отличия слишком малы чтобы их как-то классифи-
цировать.
Иногда типы данных используют аргумент, который я называю размером
аргумента, чей точный формат и значение меняется в зависимости от
конкретного типа. Значения по умолчанию обеспечены для всех типов, ес-
ли размер аргумента отсутствует.
======== ТИПЫ ANSI =========
Ниже представлены типы данных ANSI ( имена в круглых скобках - это
синонимы ):
TEXT ТЕКСТ
----------------------------------------------------------------------
CHAR 1 0Строка текста в реализационно-определенном фор-
(или CHARACTER) мате. Размер агрумента здесь это единственное
неотрицательное целое число которое ссылается к
максимальной длине строки. Значения этого типа,
должны быть заключены в одиночные кавычки, нап-
ример 'text'. Две рядом стоящие одиночные кавыч-
ки ('') внутри строки будет пониматься как одна
одиночная кавычка (').
ПРИМЕЧАНИЕ:
Здесь и далее, фраза Реализационно-Определенный или Реализацион-
но-Зависимый, указывает, что этот аргумент или формат зависит от
конкретной программы в которой реализуются данные.
EXACT NUMERIC 1 0ТОЧНОЕ ЧИСЛО
----------------------------------------------------------------------
DEC Десятичное число; то есть, число которое может
(или DECIMAL) иметь десятичную точку. Здесь аргумент размера
имеет две части: точность и масштаб. Масштаб не
может превышать точность. Сначала указывается
точность, разделительная запятая и далее аргу-
мент масштаба.
Точность указывает сколько значащих цифр имеет
число. Максимальное десятичное число составляю-
щее номер - реализационно-определенное значение,
равное или большее чем этот номер. Масштаб ука-
зывает максимальное число цифр справо от деся-
тичной точки. Масштаб = нулю делает поле эквива-
лентом целого числа.
NUMERIC Такое же как DECIMAL за исключением того, что
максимальное десятичное не может превышать аргу-
мента точности.
INT Число без десятичной точки. Эквивалентно DECI-
(или INTEGER) MAL, но без цифр справа от десятичной точки,
то-есть с масштабом равным 0. Аргумент размера
не используется (он автоматически установливает-
ся в реализационно-зависимое значение).
SMALLINT Такое же как INTEGER, за исключением того, что,
в зависимости от реализации, размер по умолчанию
может ( или не может ) быть меньшее чем INTEGER.
APPROXIMATE NUMERIC ПРИБЛИЗИТЕЛЬНОЕ ЧИСЛО
----------------------------------------------------------------------
FLOAT Число с плавающей запятой на основе 10 показа-
тельной функции. Аргумент размера состоит из од-
ного числа определяющего минимальную точность.
REAL Такое же как FLOAT, за исключением того, что ни-
какого аргумента размера не используется. Точ-
ность установлена реализационно-зависимую по
умолчанию.
DOUBLE Такое же как REAL, за исключением того, что реа-
PRECISION лизационно-определяемая точность для DOUBLE PRE-
( или DOUBLE ) CISION должна превышать реализационно-определяе-
мую точность REAL.
ЭКВИВАЛЕНТНЫЕ ТИПЫ
===== ДАННЫХ В ДРУГИХ ЯЗЫКАХ ======
Когда используется вложение SQL в другие языки, значения используе-
мые и произведенные командами SQL, обычно сохраняются в переменных
главного языка( см. Главу 25 ). Эти переменные должны иметь тип данных
совместимый со значениями SQL, которые они будут получать. В дополне-
ниях, которые не являются частью официального SQL стандарта, ANSI
обеспечивает поддержку при использовании вложения SQL в четыре языка:
Паскаль, PL/I, КОБОЛ, и ФОРТРАН. Между прочим, он включает определение
эквивалентов SQL, для данных типов переменных используемых в этих язы-
ках.
Эквиваленты типов данных четырех языков определенных 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
ФОРТРАН
SQL ТИП ЭКВИВАЛЕНТ ФОРТРАНА
------------------------------------------
CHAR CHAR
INTEGER INTEGER
REAL REAL
DOUBLE PRECISION DOUBLE PRECISION
Перейти к оглавлению