- •Дніпропетровський національний університет імені о. Гончара
- •Курсова робота
- •Введение
- •Содержание
- •Создание таблиц:
- •Краткие перечень основных типов данных Oracle
- •Заполнение таблиц:
- •Запросы
- •Insert запросы
- •Ограничения
- •Пример ограничения
- •Пример создания внешнего ключа и полная диаграмма бд
- •Фильтры
- •Операторы алгебры множеств
- •Представления
- •Примеры фильтров на основе запросов по данной бд Решение задачи с помощью представления view.
- •Заключение
- •Список используемых источников
Операторы алгебры множеств
Язык SQL в своём арсенале имеет средства для работы с результатами, полученными в результате различных запросов. Это операторы алгебры множеств. К ним относятся:
• UNION – оператор объединения комбинирует два или более результирующих набора и удаляет все повторяющиеся строки.
• INTERSECT – оператор пересечения комбинирует два или более результирующих набора и возвращает только общие строки в результатах выполнения всех запросов.
• MINUS – оператор вычитания возвращает все строки за исключение общих.
Основное правило при работе с объединением, пересечением и вычитанием таблиц заключается в том, чтобы каждый запрос возвращал одно и то же количество полей с одинаковыми типами данных для одинаковых полей.
Представления
Механизм представлений (VIEWS) можно представить, как хранимый SQL-запрос, который автоматически выполняется при работе с представлением. Представление также обладает и свойствами таблицы: в него можно вставлять данные, удалять или модифицировать их. Но, тем не менее, представление жестко связано с таблицами, над которыми оно было создано. При вставке новых картежей в представление (а по сути вставки их в таблицу базы данных) анализируются ограничения этой таблицы.
Для создания представления воспользуйтесь командой CREATE, в простейшем случае которая имеет следующий формат:
CREATE [OR REPLACE] VIEW [схема.]имя_представления AS
SELECT список_полей FROM имя_таблицы;
Как видно, вторая часть команды создания представления представляет собой SQL-выражение отбора данных. Столбцы, указанные в команде SELECT, определяют столбцы (их количество и названия) в созданном представлении.
Для удаления представление используется команда DROP, со следующим форматом:
DROP VIEW имя_представления;
Каждый включенный в представление столбец доступен для вывода и для обновления. Для работы с данными, отражёнными в представлении используются те же SQL-команды, что и для работы с таблицами (SELECT, UPDATE, DELETE). При этом следует учитывать ряд особенностей. Как уже было сказано представление - это хранимый SQL-запрос, который выполняется над какой-то базовой таблицей или представлением. Поэтому создание или удаление представления не изменяет таблицу, но если в представлении выполняется вставка или удаление строк, то эти операции отражаются в ней. В предыдущих лабораторных работах было показано создание ограничений для таблицы, они гарантируют корректные данные в независимости от способа их вставки. То есть эти ограничения будут применены и для строк, вставляемых через представления.
Другой вопрос, если столбец не включён в представление при его создании. Система запрещает использовать столбцы неопределённые в представлении, даже если они имеются в таблице. Oracle присвоит этому столбцу значение NULL, или значение по умолчанию, если такое установлено для столбца. Иногда значение NULL может привести к ошибкам (к примеру, если этот столбец является первичным ключом или если на него наложено ограничение NOT NULL) поэтому следует учитывать это обстоятельство при создании таблицы и представления.
При создании представления возможны специальные опции:
• FORCE – применяется, когда представление определяется до создания базовой таблицы, на которую оно ссылается. Эта опция позволяет создать представление, а потом определить таблицу.
• NONFORCE – опция, противоположная FORCE, то есть вы явно запрещаете возможность предварительно объявления.
• WITH READ ONLY – опция предотвращает обновление, удаление и вставку новых строк в представление. Для такого представления можно выполнять только команду выборки данных (SELECT).
• WITH CHECK OPTION – опция предотвращает создание строк, которые не могут выводиться данным представлением (то есть таких строк, которые не удовлетворяют запросу представления).
Все представления можно разделить на: однотабличные (основанные только на одной таблице) многотабличные, индивидуальные и агрегированные.
Основное назначение однотабличных представлений – скрыть от пользователя столбцы. Эта процедура получила название маскирование столбцов. Для создания маскирующего представления необходимо в списке столбцов команды SELECT указать только те, к которым пользователю разрешен доступ. Такие представления были описаны выше. Эти представления позволяют все команды DML (Data Manipulation Language). Многотабличные, индивидуальные и агрегированные представления не допускают большинство из них, кроме выборки данных (SELECT). Такие представления называются производными. Основой производного представления служит оператор SELECT на который, кроме того, накладываются ограничения. Оператор не должен содержать:
• конструкцию ORDER BY;
• конструкцию FOR UPDATE, так как она блокирует выбранные строки и не позволяет другим пользователям их обновлять или блокировать, пока включающая эту конструкцию транзакция не будет завершена;
• в список столбцов представления может быть включено не более 254 столбцов или выражений.
