Иллюстрированный самоучитель по SQL для начинающих

Основы SQL

Тип DOUBLE PRECISION

Тип данных DOUBLE PRECISION (двойная точность) дает возможность задавать числа двойной точности с плавающей запятой, точность которых опять-таки зависит от реализации Удивительно, что само значение слова DOUBLE (двойной) также зависит от реализации Арифметика двойной точности в основном применяется в научных целях. А для разных научных дисциплин требуется разная точность. Некоторые реализации SQL обслуживают одну категорию пользователей, а другие реализации – соответственно другие категории.

В некоторых системах тип DOUBLE PRECISION имеет и для мантиссы, и для экспоненты как раз в два раза большую вместимость, чем тип REAL. (Если вы забыли то, что учили в средней школе, то вспомним, что любое число можно представить в виде мантиссы, умноженной на число десять, возведенное в степень, показатель которой является экспонентой. Например, 6626 можно написать в виде 6.626ЕЗ. Число 6.626 является мантиссой, которую вы умножаете на десять, возведенное в третью степень (в данном случае 3 является экспонентой).

Вы не получите выигрыша, если будете с помощью приблизительного числового типа данных представлять числа, достаточно близкие к единице (такие как 6626 или даже 6626000). Точные числовые типы работают точно так же и занимают в памяти меньше места. Однако для чисел, которые слишком близко находятся от нуля или слишком далеко от единицы, таких как 6.626Е-34 (очень малое число), необходимо использовать приблизительный числовой тип. Для таких величин не подходят точные числовые типы. В других системах тип DOUBLE PRECISION дает побольше, чем двойная вместимость мантиссы, и поменьше, чем двойная вместимость типа REAL для экспоненты. В системах следующего вида тип DOUBLE PRECISION дает для мантиссы вместимость в два раза больше, чем у типа REAL, а для экспоненты – ту же, что и у REAL. В этом случае точность удваивается, а диапазон – нет.

Спецификация SQL:2 OO 3 не пытается жестко определить, что означает DOUBLE PRECISION. Она только требует, чтобы точность числа типа DOUBLE PRECISION была больше, чем точность типа REAL. Хотя это ограничение очень слабое, но, возможно, оно является наилучшим из возможных, если учитывать те немалые различия, которые имеются в оборудовании.

Тип FLOAT

Тип данных FLOAT (плавающий) является самым полезным, если вы считаете, что ваша база данных однажды должна перейти на аппаратную платформу, в которой размеры регистров отличаются от размеров регистров платформы, для которой вы первоначально спроектировали базу. Используя тип данных FLOAT, можно указывать точность– например, FLOAT (5). Если ваше оборудование поддерживает указанную точность, используя аппаратную одинарную точность, то ваша система использует арифметику с одинарной точностью. Если указанная точность требует арифметики с двойной точностью, то система использует ее.

Совет:
Использование FLOAT вместо REAL или DOUBLE PRECISION облегчает перенос ваших баз данных на другие системы, так как тип данных FLOAT дает возможность указывать точность. Точность чисел типа REAL или DOUBLE PRECISION зависит от аппаратуры
.

Если вы не уверены, использовать точные числовые типы данных (NUMERIC/DECIMAL) или приблизительные числовые типы (FLOAT / REAL), то выбирайте точные. Точным типам данных требуется меньше системных ресурсов, к тому же они дают точные, а не приблизительные результаты. Если же диапазон возможных значений ваших данных настолько большой, что требуется использовать приблизительные типы данных, то этот факт вы, скорее всего сможете определить для себя заранее.

Символьные строки

Сейчас в базах данных хранятся данные многих разных типов, в том числе графические изображения звуки и анимация. Надеюсь, что вслед за ними появятся и запахи. Можете вы представить на своем экране трехмерное, размером 1600x1200 пикселей, выполненное в 24-битовом цвете изображение большого ломтя наперченной пиццы, в то время как через вашу супермультимедийную плату воспроизводится фрагмент запаха, записанный в "Ди Филиппи Пицца Гротто"? Такое мультимедиа может вызывать одно лишь разочарование – хотя бы до тех пор пока в систему нельзя будет вводить и данные вкусовых ощущений. Увы, возможно придется ждать очень долго, пока запах и вкус не станут стандартными типами данных SQL. А сейчас типами данных, которые вам придется использовать чаще всего, не считая, конечно, числовых, являются типы символьных строк.

Есть три главных типа символьных данных: фиксированных символьных данных (CHARACTER или CHAR), переменных символьных данных (CHARACTER VARYING или VARCHAR) и данных для больших символьных объектов (CHARACTER LARGE OBJECT или CLOB). Кроме того, есть еще три варианта этих типов данных: NATIONAL CHARACTER (строка с национальными символами), NATIONAL CHARACTER VARYING (переменная строка с национальными символами) и NATIONAL CHARACTER LARGE OBJECT (большой объект с национальными символами).

Тип CHARACTER

Если вы определяете для столбца тип данных CHARACTER или CHAR, количество символов, которое будет в нем находиться, можно указать, используя синтаксис CHARACTER (х), где х и является нужным вам количеством. Если, например, тип данных столбца был определен как CHARACTER (16), то максимальная длина любых данных, которые можно будет ввести в этот столбец, равна 16 символам. Если аргумент не указан (т.е. нет значения в скобках), тогда для SQL это означает, что длина поля равна одному символу. Если вы вводите данные в поле типа CHARACTER, имеющего определенную длину, и при этом вводите символов меньше, чем может поместиться в поле, то позиции, оставшиеся свободными, будут заполнены пробелами.

Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.