Образовательный проект «SnakeProject» Михаила Козлова

Навигация

⇒ ORACLE SQL \ JAVA ⇐

CISCO

Voice(Asterisk\Cisco)

Microsoft

Powershell

Python

SQL\T-SQL

FreeBSD and Nix

Общая

WEB Разработка

Мото

Стрельба, пневматика, оружие

Саморазвитие и психология


Основы 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 — поиск вхождения подстроки и замена
 
 
О работе с датами и временем
 
 
 

Комментарии пользователей

Эту новость ещё не комментировалиНаписать комментарий
Анонимам нельзя оставоять комментарии, зарегистрируйтесь!

Контакты Группа ВК Сборник материалов по Cisco, Asterisk, Windows Server, Python и Django, SQL и T-SQL, FreeBSD и LinuxКод обмена баннерами Видео к IT статьям на YoutubeВидео на другие темы Смотреть
Мои друзья: Советы, помощь, инструменты для сис.админа, статическая и динамическая маршрутизация, FreeBSD

© Snakeproject.ru создан в 2013 году.
При копировании материала с сайта - оставьте ссылку.

Рейтинг@Mail.ru
Рейтинг@Mail.ru Яндекс.Метрика





Поддержать автора и проект