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

Шрифт
Фон

Значение m может быть отрицательным, позиция округления отсчитывается влево.


Пример 3.2. Примеры использования функции ROUND


SELECT ROUND (147.76), ROUND (147.76,1), ROUND (147.76, -1)

FROM Dual;



Пример 3.3. Вывести значение зарплаты, округленное до 1000


SELECT employee_id, first_name, last_name, department_id, salary, ROUND (salary, -3)

FROM Employees;



Функция TRUNC


Усекает (отбрасывает) значащие цифры справа без округления. Синтаксис:


TRUNC (n, m)


Параметры n, m аналогичны параметрам функции ROUND.


Пример 3.4. Пример использования функции TRUNC


SELECT TRUNC (147.76), TRUNC (147.76,1), TRUNC (147.76, -1)

FROM Dual;



Функция MOD


Возвращает остаток от деления n на m. Синтаксис:


MOD (n,m)


где n и m – численные значения целого или вещественного типа.


Пример 3.5. Пример использования функции MOD


SELECT mod (5,2), mod (6.5,1),mod (6.5,2.2)

FROM Dual;



Пример 3.6. Найти сотрудников с нечетным рейтингом


SELECT employee_id, first_name, last_name,

department_id, rating_e

FROM Employees

WHERE MOD (rating_e,2) =1;



Пример 3.7. Вывести ту часть зарплаты сотрудника, которая меньше 1000


SELECT employee_id, first_name, last_name, department_id,

salary, MOD (salary,1000)

FROM Employees;



Функция POWER


Возводит число x в степень n. Синтаксис:


POWER (x,n)


x – численное значение;

n – степень, может иметь вещественный тип и отрицательное значение.


Пример 3.8. Пример использования функции POWER


SELECT POWER (2,2),POWER (9,0.5),POWER (10, -1)

FROM Dual;



Функция SQRT


Возвращает квадратный корень от числа. Синтаксис:


SQRT (x)


x – численное значение;


Пример 3.9. Пример использования функции SQRT


SELECT SQRT (1), SQRT (9),SQRT (7)

FROM Dual;


Символьные типы

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

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 – исходная строка;

– search_str – строка поиска;

– n – начало поиска, определяет начальную позицию, с которой следует начинать поиск;

– m – вхождение, определяет номер вхождения, который следует возвратить.


Пример 3.14. Использование функции INSTR для нахождения позиции первого пробела в названии товара


SELECT product_name, INSTR (product_name, ′ ′)

FROM Products;



Пример 3.15. Использование функции INSTR для нахождения позиции второго пробела в названии товара


SELECT product_name, INSTR (product_name, ′ ′,1,2)

FROM Products;



Используя функцию SUBSTR совместно с функцией INSTR, можно вывести часть строчного значения, которая состоит из одного или нескольких слов. Следует иметь в виду, что если название товара состоит из двух слов, то второй пробел найден не будет и этот товар не попадет в результат выполнения запроса.


Пример 3.16. Вывести первые два слова из названия товара


SELECT SUBSTR (product_name,1,

(INSTR (product_name, ′ ′,1,2) -1))

FROM Products;



Пример 3.17. Вывести названия товаров, первое слово которых состоит из трех символов


SELECT product_id, product_name

FROM Products

WHERE Length (SUBSTR (product_name,1,

(INSTR (product_name, ′ ′) -1))) =3;



Используя функцию INSTR, можно осуществлять поиск по части строчного значения.

Пример 3.18. Вывести данные о товарах, в названии которых есть слово Core


SELECT *

FROM Products

WHERE INSTR (UPPER (product_name), ′CORE»′> 0;


Типы даты и времени

Эти типы используются для работы с данными, представляющими собой даты с учетом времени. Тип Date является основным при работе с данными, представляющими собой дату и время. При использовании этого типа данные хранятся в формате DD-MM-YY HH: MI: SS, где:

DD – двузначное значение дня;

MM – двузначный номер месяца;

YY – две последние цифры года;

HH, MI, SS – двузначные значения часа, минуты и секунды.

При выводе значений данного типа по умолчанию отображается дата. Для получения текущей даты в формате Date используется функция SYSDATE.


Пример 3.19. Вывод текущей даты в формате по умолчанию


SELECT SYSDATE

FROM Dual;



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

Пример 3.20. Вывод текущей даты с использованием функции TO_CHAR


SELECT TO_CHAR (SYSDATE, ′DD MONTH YYYY, HH24:MI: SS′)

As Date_Time

FROM Dual;



К типам данных, используемых для представления значений даты и времени, также относятся:

– TIMESTAMP – аналогичен типу Date, но время хранится с точностью до миллиардной доли секунды. Для получения текущей даты в этом формате используется функция LOCALTIMESTAMP;

– TIMESTAMP WITH TIME ZONE – хранит вместе со значением даты и времени информацию о часовом поясе. Часовым поясом называется смещение от времени по Гринвичу. Для получения текущей даты в этом формате используется функция SYSTIMESTAMP.


Пример 3.21. Использование функция LOCALTIMESTAMP


SELECT LOCALTIMESTAMP

FROM DUAL;



Пример 3.22. Использование функция SYSTIMESTAMP

Ваша оценка очень важна

0
Шрифт
Фон

Помогите Вашим друзьям узнать о библиотеке

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

Если нет возможности читать онлайн, скачайте книгу файлом для электронной книжки и читайте офлайн.

fb2.zip txt txt.zip rtf.zip a4.pdf a6.pdf mobi.prc epub ios.epub fb3