Основы программирования в СУБД Oracle. SQL+PL/SQL.. О. А. Ткачев

Основы программирования в СУБД Oracle. SQL+PL/SQL. - О. А. Ткачев


Скачать книгу
типы используются для работы с данными, представленными в виде текста. Основными символьными типами являются:

      CHAR (n) – строка символов фиксированной длины n, позволяет хранить символьные данные длиной от 1 до 2000 символов. Если длина (n) явно не указана, то она считается равной 1. Если длина присваиваемого значения будет меньше n, то оно дополняется пробелами справа.

      VARCHAR2 (n) – строка символов переменной длины, которая может содержать не более n – 1 символа, предназначена для хранения символьных данных длиной от 1 до 4000 символов. Хранит столько символов, сколько содержит присваиваемое значение. Значение n трактуется как максимально возможная длина строки.

      Типы NCHAR (n) и NVARCHAR2 (n) – предназначены для хранения символьных данных фиксированной и переменной длинны в формате Unicode.

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

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

      – функции преобразования регистра;

      – функции обработки строк.

      Таблица 3.2. Функции преобразования регистра

      Пример 3.10. Вывести название товара, используя различные функции преобразования регистра

      SELECT

      UPPER (Product_name) As UPPER,

      LOWER (Product_name) As LOWER,

      INITCAP (Product_name) As INITCAP

      FROM Products

      WHERE product_id = 50;

      Довольно часто столбец, имеющий символьный тип, содержит значения в различных регистрах. Например, столбец first_name может содержать как значение DAVID, так и значение David. В этом случае запрос, содержащий условие выбора: first_name = ′DAVID′ или first_name = ′David′ выведет только часть необходимых данных. Эту проблему можно решить, используя функции преобразования регистра.

      Пример 3.11. Вывести данные о сотрудниках, у которых столбец first_name имеет значение DAVID, или David, или david

      SELECT employee_id, first_name, last_name, department_id, salary

      FROM Employees

      WHERE UPPER (first_name) = ′DAVID′;

      Таблица 3.3. Функции обработки строк

      Примеры использования функций обработки строк

      Функции LPAD () и RPAD () можно использовать для отображения результата выполнения запроса в виде, который более удобен для восприятия.

      Пример 3.12. Вывод данных о зарплате сотрудников без использования функций LPAD () и RPAD ()

      SELECT first_name||′ ′||last_name || ′ has a monthly salary of ′

      || salary || ′ dollars. ′ AS Pay

      FROM Employees;

      Пример 3.13. Вывод данных о зарплате сотрудников c использованием функций LPAD () и RPAD ()

      SELECT RPAD (first_name||′ ′||last_name,25)

      || ′ has a monthly salary of ′

      || LPAD (salary,6) || ′ dollars.» AS Pay

      FROM Employees;

      Рассмотрим более подробно функцию INSTR, которая часто используется при работе с символьными данными.

      Функция INSTR возвращает номер позиции в строке str, начиная с которой строка search_str входит в строку str. Если вхождений не найдено, то функция возвращает значение 0. Синтаксис:

      INSTR (str, search_str [, n [, m]])

      – str –


Скачать книгу