Неопределенным значением (NULL) называется недоступное, неприсвоенное, неизвестное или неприменимое значение. Неопределенное значение - это не ноль и не пробел. Издержки "хранения" неопределенного значения - это один байт внутренней памяти.
Неопределенные значения возможны в столбцах любых типов, если при создании таблицы они не были описаны как столбцы только с определенными значениями (NOT NULL) или столбцы, содержащие первичный ключ (PRIMARY KEY).
Если выражение содержит неопределенное значение в любом из столбцов, то и результатом вычисления выражения будет неопределенное значение. При попытке деления на ноль вы получите сообщение об ошибке, а результатом деления на неопределенное значение будет неопределенное значение.
Для преобразования неопределенного значения в фактическое используется функция NVL:
NVL (выражение 1, выражение 2)
где:
выражение 1 - исходное или вычисленное значение, которое может быть неопределенным
выражение 2 - значение, которое подставляется вместо неопределенного значения.
Преобразование NVL для различных типов:
Тип данных | Пример преобразования | |
NUMBER | NVL (числовой столбец, 9) | |
DATE | NVL (столбец даты, '01-ЯНВ-95') | |
CHAR или VARCHAR2 | NVL (символы|столбец, 'Недоступно') | |
Функции
В языке SQL существуют два класса функций – однострочные и групповые.
Однострочные функции принимают на вход одну строку (запроса или арифметического выражения) и выдают один результат. Этот результат, как и в случае понятия функции в любом языке программирования, связывается с ее именем. Однострочные функции могут быть разных типов: символьные; числовые; для работы с датами; функции преобразования и т.д. Аргументом однострочных функций может быть: константа, заданная пользователем; значение переменной; имя столбца таблицы; выражение.
Групповые функции принимают на входе группу строк и выдают одно значение после обработки этой группы.
Синтаксис:
имя_функции (столбец|выражение, [аргумент 1, аргумент 2, …])
Некоторые числовые функции
Функция | Возвращаемое значение |
ABS(n) | Абсолютное значение величины n |
CEIL(n) | Наименьшее целое, большее или равное n |
ЕХР(n) | e в степени n |
FLOOR(n) | Наибольшее целое, меньшее или рапное n |
MOD(m, n) | Остаток от деления m на n |
POWER(w, n) | w в степени n |
ROUND(n [, m ]) | n, округленное до m позиций после десятичной точки. По умолчанию m равно нулю |
SIGN(n) | -1 (если n <0); 0 (если n =0); 1 (если n >0) |