Скачиваний:
18
Добавлен:
01.04.2014
Размер:
132.61 Кб
Скачать

Приложение 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

Соседние файлы в папке ПОНИМАНИЕ SQL