Навигация
|
Основы Oracle 18c - 19c часть 4 - SQL запросы чуть сложнееОсновы Oracle 18c - 19c часть 4 - SQL запросы чуть сложнее
В данной заметке речь пойдет о более сложных запросах
Применим соединение таблиц, функции работы с датами и временем и т.п.
Выборка данных - SELECT
Возможные члены:
SELECT, FROM, WHERE, GROUP BY, HAVING, PIVOT, UNPIVOT, CONNECT BY, ORDER BY
Члены SELECT и FROM в конструкции - обязательны
Проризводительность во многом завист от правильно спланированного запроса
Отсечение ненужных данных на шаге WHERE даст большую производительность, чем на HAVING
Логика обработки этапов SELECT:
FROM
PIVOT, UNPIVOT
CONNECT BY
WHERE
GROUP BY
HAVING
ORDER BY
SELECT
Из предыдущего урока мы имеем три взаимосвязанные таблицы с данными колонками:
payments ( payment_num, payment_date, customer, customer_address, total_cost )
payments_goods ( payment_num, good_num, good_name, quantity, price, cost )
payments_services ( payment_num, service_name, cost )
Из предыдущей статьи у нас есть несколько записей:
SELECT * FROM payments ;
Добавим записей в другие таблицы:
Попробуем сделать подзапрос
Выберем все из payments_goods, что совпадет по payment_num с таблицей payments
Теперь попробуем соеденить таблицы с помощью JOIN
В примере с LEFT OUTER JOIN мы увидели значения NULL
Это говорит о том, что в данной ячейке нет никакого значения (пустота)
Работа с Null
Функция NVL (expr1, expr2)
Возвращает значение expr1, если expr1 is null - возвращает значение expr2
Функция NVL2 (expr1, expr2, expr3)
expr1 – выражение
expr2 – если expr1 "is not null" будет возвращено expr2
expr3 – если expr1 "is null" будет возвращено expr3
Теперь посмотрим несколько конструкций, которые могут работать со значениями
dual - псевдотаблица в Oracle для получения отвлеченных значений SELECT
Выражение CASE может содержать несколько блоков WHEN-THEN и один или ниодного ELSE
Синтаксис:
CASE
WHEN условное_выражение=true THEN выражение_результат
ELSE выражение_результат
END
Преобразование типов данных может функция CAST
Строковые функции для работы с текстом типа VARCHAR2 и CHAR
LENGTH — вычисление длины строки
LOWER, UPPER — нижний и верхний регистр
INITCAP — повышение регистра первых букв в словах и понижение остальных
RTRIM, LTRIM — обрезание одинаковых символов в конце или в начале (по умолчанию пробелов)
RPAD, LPAD — "добивание" строки текста одинаковыми символами справа или слева (по умолчанию пробелами)
INSTR, SUBSTR — поиск вхождения подстроки и замена
О работе с датами и временем
Комментарии пользователей Эту новость ещё не комментировалиНаписать комментарий Анонимам нельзя оставоять комментарии, зарегистрируйтесь! |
Контакты Группа ВК | Код обмена баннерами | Видео к IT статьям на YoutubeВидео на другие темы Смотреть | |||
Мои друзья: | © Snakeproject.ru создан в 2013 году.При копировании материала с сайта - оставьте ссылку.Весь материал на сайте носит ознакомительный характер,за его использование другими людьми, автор ответственности не несет. |
||||
Поддержать автора и проект
|