Пример
Рисунок 206. Пример использования CUBE
ROLLUP работает следующим образом:
• сначала вычисляются стандартные агрегированные значения в предложении GROUP BY;
• затем создаются промежуточные итоги высокого уровня для столбцов группировки, которые представляют собой столбцы «колонка2» и «колонка 1», справа налево;
• наконец, создается общий итог.
Есть еще дополнительная функция GROUPING SET, поясните ее работу.
Предложение GROUPING SETS — это расширение предложения GROUP BY, которое можно использовать, чтобы задать одновременно сразу несколько группировок данных.
Пример работы:
Без данной функции для получения результата, аналогичного приведенной инструкции SELECT, потребовалось бы несколько запросов, объединенных UNION ALL. Использование нескольких запросов неэффективно, так как требует нескольких обращений для одних и тех же данных.
Контрольные вопросы и задания для самостоятельного выполнения
1. Используя ROLLUP, посчитайте, сколько разных марок автомобилей разного цвета. Подведите итоги с помощью ROLLUP.
2. Объясните различия между ROllUP и CUBE.
3. С помощью CUBE подсчитайте количество людей одного возраста (MAN), подведите итог: всего людей 18, 19, 20 лет.
Ранее мы уже разбирали конструкцию WITH, когда можно предварительно составить запрос и обратиться через псевдоним к этому запросу.
Подобный функционал обеспечивают представления VIEW.
Представления являются физическим объектом в базе данных, который создается на основе запроса.
Имя представления не может начинаться с цифр и должно быть уникально в рамках схемы, а также не должно совпадать с именем любой из таблиц или зарезервированным словом СУБД.
Обычное представление VIEW физически не содержит данных, запрос из представления выполняется приблизительно, так же как обычный запрос.
Основное назначение представлений в ORACLE — это распределение прав и удобство использования представлений.
Синтаксис
где VIEWNAME — название представления, AS — запрос-обращение к представлению.
То есть в качестве источника данных мы используем ранее созданное представление.
Примеры
Представление на основе таблицы AUTO, где только синие авто.
Выбор данных из созданного представления v_AUTO.
Рисунок 207. Обращение к v_AUTO
Представление на основе таблицы MAN и таблицы AUTO.
Обратиться к данному представлению в запросе, выбрать автомобили BMW.
Выбор данных из созданного представления v_MAN_AUTO.
Рисунок 208. Запрос к v_MAN_AUTO
Представление на основе таблицы MAN и таблицы CITY.
Обратиться к данному представлению в запросе:
Выбор данных из представления v_MAN_CITY.
Рисунок 209. Запрос к v_MAN_CITY
• На чтение данных из представлений нужны права, которые может выдать администратор системы.
• На создание представлений также нужны права, которые может выдать администратор системы.
• Представления не сохраняют результата запроса, а только текст запроса, каждый раз при обращении к заданному представлению-запросу выполняются вновь.
• Для создания отчетов лучше использовать материализованные преставления или временные таблицы.
Можно ли создать представление на основе запроса другого представления?
Да, никаких ограничений нет.
Можно ли использовать в представлении объекты последовательностей SEQUENCE?
Нет, это ограничение, использовать последовательности в представлениях нельзя.
Можно ли использовать в представлениях одинаковые названия колонок?
Нет, использовать одинаковые названия колонок недопустимо.
Контрольные вопросы и задания для самостоятельного выполнения
1. Расскажите, что такое представление в рамках базы данных.
2. Чем представление отличается от обычного запроса?
3. В чем преимущество использования представлений в базе данных?
4. Создайте представление на основе таблицы CITY.
5. Создайте представление на основе таблиц CITY, MAN с данными из этих двух таблиц (запрос с объединением двух таблиц, связь по колонке CITYCODE).
Синонимы (synonyms) — специальные псевдонимы объектов базы данных, применяются для удобства доступа к объектам других схем базы данных, могут использоваться для распределения прав и безопасности доступа к данным. Синонимы могут приватными (private) или общедоступными (public). Общедоступные синонимы видны всем пользователям базы данных, приватные синонимы принадлежат только заданной схеме.
Читать дальше
Конец ознакомительного отрывка
Купить книгу