|
-------------------------------------------------------------------------------- |
|
ТИПЫ ДАННЫХ В 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/I |
SQL ТИП ЭКВИВАЛЕНТ 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 |