Перейти к оглавлению
                             Приложение  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
  
 
Перейти к оглавлению
Hosted by uCoz