Проект «SnakeProject» Михаила КозловаРегистрация

Навигация
⇐CISCO
⇐Voice(Asterisk\Cisco)
⇐Microsoft
⇐Powershell
⇐Python
⇐SQL\T-SQL
⇐FreeBSD and Nix
⇐1С
⇐Общая
⇐WEB Разработка
⇐ORACLE SQL \ JAVA
⇐Мото

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

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

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

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


Яндекс.Метрика

Goon Каталог сайтов Рейтинг@Mail.ru