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