Выбрать главу

Синтаксис соответствующего оператора следующий.

LENGTH(строка символов)

Пример____________________________Значение________________

SELECT LENGTH (LAST_NAME) Этот оператор SQL возвращает длину фами-

FROM EMPLOYEE_TBL; лии для каждого из служащих

SELECT PROD_DESC, LENGTH(PROD_DESC)

FROM PRODXCTS_TBL;

PROD_DESC LENGTH(PROD_DESC)

КОСТЮМ ВЕДЬМЫ 13

ПЛАСТИКОВЫЕ ТЫКВЫ 17

ИСКУССТВЕННЫЕ ПАРАФИНОВЫЕ ЗУБЫ 30

ФОНАРИ 6

КОСТЮМЫ В АССОРТИМЕНТЕ 22

СЛАДКАЯ КУКУРУЗА 16

ТЫКВЕННЫЕ КОНФЕТЫ 17

ПЛАСТИКОВЫЕ ПАУКИ 17

МАСКИ В АССОРТИМЕНТЕ 20

ЦЕПОЧКА ДЛЯ КЛЮЧЕЙ 18

ПОЛОЧКА ИЗ ДУБА 15

11 строк выбраны.

Функция NVL (замещение значения NULL)

Функция NVL используется для отображения значения некоторого выражения, когда значение другого заданного выражения оказывается NULL Функцию NVL можно использовать с данными большинства типов, однако, проверяемое значение и замещающее его значение должны быть одного типа

Синтаксис соответствующего оператора следующий.

NVL('значение', 'замещающее значение')

Пример______________________________Значение______________

SELECT NVL (SALARY, '00000') Этот оператор SQL находит пустые значения

FROM EMPLOYEE_PAY_TBL; для зарплаты и заменяет их значением 00000

SELECT PAGER, NVL(PAGER,9999999999)

FROM EMPLOYBE_TBL;

PAGER NVL(PAGER,

9999999999

9999999999

3175709980 3175709980

8887345678 8887345678

9999999999

9999999999

6 строк выбраны.

Значение 9999999999 было подставлено только вместо значений NULL

Функция LPAD

Функция LPAD используется для добавления символов или пробелов в начало строки. Синтаксис соответствующего оператора следующий

LPAD(множество строк, число, символ)

В следующем примере в начало описаний товаров добавляются точки так, чтобы общее число символов в описании оказалось равным 33.

SELECT LPAD(PROD_DESC,33,'.')

PRODUCT FROM PRODICTS_TBL;

PRODUCT

.................... КОСТЮМ ВЕДЬМЫ

................ ПЛАСТИКОВЫЕ ТЫКВЫ

...ИСКУССТВЕННЫЕ ПАРАФИНОВЫЕ ЗУБЫ

........................... ФОНАРИ

........... КОСТЮМЫ В АССОРТИМЕНТЕ

................. СЛАДКАЯ КУКУРУЗА

................ ТЫКВЕННЫЕ КОНФЕТЫ

................ ПЛАСТИКОВЫЕ ПАУКИ

............ .МАСКИ В АССОРТИМЕНТЕ

............... ЦЕПОЧКА ДЛЯ КЛЮЧЕЙ

.................. ПОЛОЧКА ИЗ ДУБА

11 строк выбраны.

Функция RPAD

Функция RPAD используется для добавления символов или пробелов в конец строки Синтаксис соответствующего оператора следующий.

RPAD(множество строк, число, символ)

В следующем примере в конец описаний товаров добавляются точки так, чтобы общее число символов в описании оказалось равным 33

SELECT RPAD(PROD_DESC,33,'.')

PRODUCT FROM PRODICTSJTBL;

PRODUCT

КОСТЮМ ВЕДЬМЫ....................

ПЛАСТИКОВЫЕ ТЫКВЫ................

ИСКУССТВЕННЫЕ ПАРАФИНОВЫЕ ЗУБЫ...

ФОНАРИ...........................

КОСТЮМЫ В АССОРТИМЕНТЕ...........

СЛАДКАЯ КУКУРУЗА.................

ТЫКВЕННЫЕ КОНФЕТЫ................

ПЛАСТИКОВЫЕ ПАУКИ................

МАСКИ В АССОРТИМЕНТЕ.............

ЦЕПОЧКА ДЛЯ КЛЮЧЕЙ...............

ПОЛОЧКА ИЗ ДУБА..................

11 строк выбраны.

Функция ASCII

Функция ASCII возвращает ASCII-код самого левого символа в строке (ASCII расшифровывается как American Standard Code for Information Interchange - американский стандартный код для обмена информацией).

Синтаксис соответствующего оператора следующий.

ASCII(строка)

Например,

ASCII ('A') возвратит 65,

ASCII (' в') возвратит 66,

ASCII (' с') возвратит 67.

Математические функции

Математические функции для всех реализаций SQL стандартны. С помощью этих функций выполняются вычисления с числовыми значениями базы данных. Из наиболее используемых математических функций выделим следующие.

Абсолютное значение ABS Округление ROUND Квадратный корень SQRT Знак числа SIGN Возведение в степень POWER Целая часть и ближайшее целое сверху FLOOR, CEIL Экспонента ЕХР Тригонометрические функции SIN, cos, TAN Общий синтаксис большинства математических функций следующий.

ФУНКЦИЯ(выражение)

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

Функции преобразования используются для преобразования одних типов данных в другие. Например, может возникнуть необходимость преобразования символьных данных в числовые. Данные могут храниться в базе данных в символьном виде, но для использования их в вычислениях необходимо представить эти данные в виде чисел. Математические функции и вычисления не работают с символьными данными.

Абсолютное значение

Округление

Квадратный корень

Знак числа

Возведение в степень

Целая часть и ближайшее целое сверху

Экспонента

Тригонометрические функции

ABS

ROUND

SQRT

SIGN

POWER

FLOOR,

CEIL EXP

SIN, COS, TAN

К главным классам преобразования данных относятся следующие преобразования:

• символьного типа данных в числовой;

• числового типа данных в символьный;

• символьного типа данных в тип даты и времени;

• типа даты и времени в символьный.

В ходе данного урока обсуждаются первые два класса преобразований. Остальные будут обсуждаться в ходе урока 12, "Работа с датами и временем".

В некоторых реализациях предусмотрено неявное преобразование данных одних типов в другие при необходимости

Преобразование символьных строк в числа

Относительно различия числовых и символьных данных вы должны четко представлять себе два момента.

1. К числовым данным могут применяться арифметические операции и функции.

2. При неформатированном выводе числовые значения выравниваются по правому краю, а символьные строки - по левому.

После преобразования символьной строки в число результат получает соответствующие только что указанные свойства.

В некоторых реализациях SQL нет функций для преобразования строк символов в числа, а в некоторых - есть. В любом случае по поводу имеющихся возможностей, правил преобразования и синтаксиса операторов необходимо обратиться к документации соответствующей реализации языка.

SELECT SUM(LENGTH(LAST_NAME) + LENGTH{FIRST_NAME)) TOTAL

FROM EMPLOYEE_TBL;

TOTAL

--------

71

1 строка выбрана.

В этом примере использованы функция LENGTH и арифметический оператор +, чтобы вычислить суммарную длину имени и фамилии для каждой записи таблицы, а после этого с помощью функции SUM вычисляется сумма длин всех имен и фамилий в таблице.

При вложении одних функций SQL в другие вычисление начинается с внутренней функции, и все вложенные функции обрабатываются последовательно по уровням вложения от внутренней к внешней

Резюме

Вы ознакомились с рядом функций, используемых в операторах SQL - как правило, в запросах, - чтобы изменить представление данных при выводе. Среди таких функций есть символьные, математические и функции преобразования. Очень важно понимать, что стандарт ANSI является только общим руководством для производителей при создании реализации языка, он не диктует точный синтаксис соответствующих операторов и не ограничивает право производителя на нововведения. Большинство производителей предлагают стандартные функции в соответствии с концепциями ANSI, но каждый производитель предлагает свой список доступных пользователю функций. Могут отличаться как имена функций, так и их синтаксис, но лежащие в основе функций концепции одинаковы.