Скачать презентацию Тема Примеры группирования исключения и триггеры Вопросы 1 Скачать презентацию Тема Примеры группирования исключения и триггеры Вопросы 1

7 Примеры группирования исключения триггеры.ppt

  • Количество слайдов: 9

Тема: Примеры группирования, исключения и триггеры Вопросы: 1. Примеры группирования в запросах 2. Обработка Тема: Примеры группирования, исключения и триггеры Вопросы: 1. Примеры группирования в запросах 2. Обработка исключения 3. Работа с триггерами 1

Вложенные подзапросы Коррелированные подзапросы: в операторе SELECT внутреннего подзапроса можно ссылаться на столбцы внешнего Вложенные подзапросы Коррелированные подзапросы: в операторе SELECT внутреннего подзапроса можно ссылаться на столбцы внешнего запроса. Такой подзапрос выполняется для каждой строки таблицы, определяя условие ее вхождения в формируемый результирующий набор. Пример коррелированного подзапроса: SELECT * from tbl 1 t 1 WHERE f 2 IN (SELECT f 2 FROM tbl 2 t 2 WHERE t 1. f 3=t 2. f 3); Для каждой строки таблицы tbl 1 будет проверяться условие, что значение поля f 2 совпадает со значением строки таблицы tbl 2, где значение поля f 3 равно значению поля f 3 внешней таблицы (tbl 1). 2

Исходные таблицы TBL 1 и TBL 2 3 Исходные таблицы TBL 1 и TBL 2 3

Результат запроса 4 Результат запроса 4

Примеры группирования в запросах HAVING — необязательный параметр оператора SELECT для указания условия на Примеры группирования в запросах HAVING — необязательный параметр оператора SELECT для указания условия на результат агрегатных функций (MAX, SUM, AVG, …). HAVING <условия> аналогичен WHERE <условия> за исключением того, что строки отбираются не по значениям столбцов, а строятся из значений столбцов указанных в GROUP BY и значений агрегатных функций, вычисленных для каждой группы, образованной GROUP BY. Необходимо, чтобы в SELECT были заданы только требуемые в выходном потоке столбцы, перечисленные в GROUP BY и/или агрегированные значения. Если параметр GROUP BY в SELECT не задан, HAVING применяется к «группе» всех строк таблицы, полностью дублируя WHERE (допускается не во всех реализациях 5 стандарта SQL).

Вложенные подзапросы Для коррелированного подзапроса во фразе HAVING можно использовать только агрегирующие функции, так Вложенные подзапросы Для коррелированного подзапроса во фразе HAVING можно использовать только агрегирующие функции, так как при выполнении подзапроса в качестве проверяемой строки выступает результат группирования строк на основе агрегирующих функций основного запроса. Пример: SELECT f 1, COUNT(*), SUM(f 2) from tbl 1 t 1 GROUP BY f 1 HAVING SUM(f 2)> (SELECT MIN(f 2)*4 FROM tbl 1 t 1_in WHERE t 1. f 1=t 1_in. f 1); 6

Таблица Результат вложенного подзапроса 7 Таблица Результат вложенного подзапроса 7

Таблица Результат вложенного подзапроса 8 Таблица Результат вложенного подзапроса 8

9 9