Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Базы данных / БД2012 / Understanding.SQL.doc
Скачиваний:
281
Добавлен:
28.03.2015
Размер:
1.75 Mб
Скачать

Эквивалентные типы данных в других языках

Когда используется вложение 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 ()

PIC X ()

INTEGER

PIC S () USAGE COMPUTTATIONAL

NUMERIC

PIC S ( < nines with embedded V > ) DISPLAY SING LEADING SEPERATE

ПАСКАЛЬ

SQL ТИП

ЭКВИВАЛЕНТ ПАСКАЛЯ

INTEGER

INTEGER

REAL

REAL

CHAR ()

PACKED ARRAY [1..] OF CHAR

ФОРТРАН

SQL ТИП

ЭКВИВАЛЕНТ ФОРТРАНА

CHAR

CHAR

INTEGER

INTEGER

REAL

REAL

DOUBLE PRECISION

DOUBLE PRECISION

Приложение C

НЕКОТОРЫЕ ОБЩИЕ HЕСТАНДАРТНЫЕ СРЕДСТВА SQL

Имеется ряд особенностей языка SQL, которые пока не определены как часть стандарта ANSI или стандарта ISO (Международная Организация По Стандартизации), и являются общими для многочисленных реализаций, так как они были получены для практического использования. Это дополнительные элементы чисел этих особенностей. Конечно, эти особенности меняются от программы к программе, и их обсуждение предназначено только чтобы показать некоторые общие подходы к ним.

TИПЫ ДАННЫХ

Типы данных поддерживаемые стандартом 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

IBM Европейский Стандарт (EUR)

dd.mm.yyyy

10.31.1990

Наличие специального типа определяемого для даты, дает возможность выполнять арифметические операции с датами. Например, вы можете добавлять число дней к дате и получать другую дату, в программе, самостоятельно следящей за числом дней в месяцах, високосными годами, и так далее. Даты могут также сравниваться; например фраза, дата A < дата B , означает, что дата A предшествует дате B по времени. Кроме даты, большое количество программ определяют специальный тип для времени, который может также быть представлен в ряде форматов, включая следующие:

Стандарт

Формат

Пример

МЕЖДУНАРОДНАЯ ОРГАНИЗАЦИЯ ПО СТАНДАРТИЗАЦИИ (ISO)

hh-mm-ss

21.04.37

Японский Индустриальный Стандарт (JIS )

hh-mm-ss

21.04.37

IBM Европейский Стандарт

hh-mm-ss

21.04.37

IBM USA Стандарт (USA)

hh.mm AM/PM

9.04 PM

Время может добавляться или сравниваться точно также как дата, с коррекцией числа секунд в минутах или часах автоматически. Кроме того, специально встроенные константы указывающие текущую дату или время ( CURDATE или CURTIME ) являются общими. Они похожи на константу USER (Пользователь) в которой их значение будет непрерывно меняться. Можете ли вы включать врем и дату в одно поле ? Некоторые реализации определяют тип DATE достаточно точно, чтобы включать туда еще и TIME. В качестве альтернативы, третий обобщающий тип, TIMESTAMP, может быть определен как комбинация этих двух.

Соседние файлы в папке БД2012