Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
database.doc
Скачиваний:
0
Добавлен:
01.03.2025
Размер:
1.12 Mб
Скачать

5. Обработка неопределенных значений

Неопределенным значением (NULL) называется недоступное, неприсвоенное, неизвестное или неприменимое значение. Неопределенное значение - это не ноль и не пробел. Издержки "хранения" неопределенного значения - это один байт внутренней памяти.

Неопределенные значения возможны в столбцах любых типов, если при создании таблицы они не были описаны как столбцы только с определенными значениями (NOT NULL) или столбцы, содержащие первичный ключ (PRIMARY KEY).

Если выражение содержит неопределенное значение в любом из столбцов, то и результатом вычисления выражения будет неопределенное значение. При попытке деления на ноль вы получите сообщение об ошибке, а результатом деления на неопределенное значение будет неопределенное значение.

Для преобразования неопределенного значения в фактическое используется функция NVL:

NVL (выражение 1, выражение 2)

где:

выражение 1 - исходное или вычисленное значение, которое может быть неопределенным

выражение 2 - значение, которое подставляется вместо неопределенного значения.

Преобразование NVL для различных типов:

Тип данных

Пример преобразования

NUMBER

NVL (числовой столбец, 9)

DATE

NVL (столбец даты, '01-ЯНВ-95')

CHAR или VARCHAR2

NVL (символы|столбец, 'Недоступно')

6. Функции

В языке 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)

Некоторые символьные функции

Функция

Возвращаемое значение

Символьные функции, возвращающие символьные значения:

СОNСАТ(сhar1,char2)

Конкатенация символьных строк char1 и char2

INITCAP(char)

Символьная строка сhar, первые буквы всех слов в которой преобразованы в прописные

LOWER(char)

Символьная строка char, все буквы которой преобразованы в строчные

UPPER(char)

Символьная строка char, в которой все буквы преобразованы в прописные

Функции для работы с датами

Oracle хранит данные во внутреннем цифровом формате: век, год, месяц, число, часы, минуты, секунды. По умолчанию дата выдается в формате «DD-MON-YY».

Функция

Назначение

MONTHS_BETWEEN(date1, date2)

Определяет число месяцев, разделяющих две даты. Дробная часть результата представляет собой долю месяца.

ADD_MONTHS(date,n)

Добавление календарных месяцев к дате.

NEXT_DAY(date, ‘char’)

Ближайшая дата, когда наступит заданный день. Аргумент ‘char’ может задавать порядковый номер или название дня недели.

LAST_DAY(date)

Определение последнего дня месяца, содержащего заданную дату.

ROUND(date[, ‘fmt’])

Округление до целого числа суток. Если fmt=YEAR, определяет первый день года.

TRUNC(date[, ‘fmt’])

Возвращает первый день месяца, указанного в аргументе date. Если fmt=YEAR, возвращает дату первого дня года.

SYSDATE()

Возвращает текущую дату и время.

Функции преобразования типа

Функция

Возвращаемое значение

TO_CHAR (date[, 'fmt'])

Преобразование даты в строку символов в соответствии с форматной моделью fmt.

TO_CHAR (number[, 'fmt'])

Преобразование числа в строку символов в соответствии с форматной моделью fmt.

TO_NUBER (char)

Преобразование строки символов в числовой формат.

TO_DATE (char[, 'fmt'])

Преобразование строки символов в формат даты в соответствии с форматной моделью fmt.

Групповые функции

Функция

Возвращаемое значение

AVG([DISTINCT|ALL]n)

Среднее значение от n, нулевые значения опускаются

COUNT([ALL]*)

Число строк, извлекаемых в запросе или подзапросе

COUNT([DISTINCT|ALL] expr)

Число строк, для которых expr принимает не пустое значение

MAX([DISTINCT|ALL] expr)

Максимальное значение выражения eхрr

MIN([DISTINCT|ALL] expr)

Минимальное значение выражения eхрr

SUM([DISTINCT|ALL] n)

Сумма значений n

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]