- •Дніпропетровський національний університет імені о. Гончара
- •Курсова робота
- •Введение
- •Содержание
- •Создание таблиц:
- •Краткие перечень основных типов данных Oracle
- •Заполнение таблиц:
- •Ограничения
- •Пример ограничения
- •Запросы
- •Insert запросы
- •Пример создания внешнего ключа и полная диаграмма бд
- •Фильтры
- •Операторы алгебры множеств
- •Представления
- •Примеры фильтров на основе запросов по данной бд Решение задачи с помощью представления view.
- •Заключение
- •Список используемых источников
Пример создания внешнего ключа и полная диаграмма бд
Отдел кадров (Связывает таблицы "Сотрудники" и "Должности" по полю "Код должности").
ALTER TABLE BA_STAFF ADD (
CONSTRAINT w_fkey FOREIGN KEY (rt_position_id) REFERENCES BA_OFFICE (qb_id));
Список клиентов (Связывает таблицы “Клиенты”, “Знаки зодиака”, “Отношения” и “Национальности” по полям “Код знака” “Код отношения” и “Код национальности”).
ALTER TABLE BA_CLIENTS ADD (
CONSTRAINT w_fkey1 FOREIGN KEY (fr_id_zodiac) REFERENCES BA_ZODIAC (lw_id),
CONSTRAINT w_fkey2 FOREIGN KEY (fr_id_relation) REFERENCES BA_relation (kw_id),
CONSTRAINT w_fkey3 FOREIGN KEY (fr_id_nation) REFERENCES BA_NATION (lr_id));
Список услуг (Связывает таблицы “Услуги”, “Клиенты”, “Дополнительные услуги” и “Сотрудники” по полям “Код клиента”,
“Код услуги 1”, “Код услуги 2”, “Код услуги 3” и “Код сотрудника”).
ALTER TABLE BA_SERVIC ADD (
CONSTRAINT w_fkey4 FOREIGN KEY (te_id_client) REFERENCES BA_CLIENTS (fr_id),
CONSTRAINT w_fkey5 FOREIGN KEY (te_id_services1) REFERENCES BA_SERVICES (ze_id),
CONSTRAINT w_fkey6 FOREIGN KEY (te_id_services2) REFERENCES BA_SERVICES (ze_id),
CONSTRAINT w_fkey7 FOREIGN KEY (te_id_services3) REFERENCES BA_SERVICES (ze_id),
CONSTRAINT w_fkey8 FOREIGN KEY (te_id_staff) REFERENCES BA_STAFF (rt_id));
Фильтры
Для реляционных баз данных естественным является хранение информации во множестве таблиц. Иногда необходимо получить данные одна часть которых хранится в одной таблице, а вторая в другой. Эти части обычно связываются по некоторому условию (ключу).
Простейшим способом соединения (join) является перечисление всех объединяемых таблицы в списке FROM. В этом случае СУБД соединяет каждую строку первой таблицы с каждой строкой второй таблицы. Такое объединение называется перекрестным или декартовым произведением.
Конструкция WHERE с соответствующим условием объединения устраняет ненужные строки в перекрестном объединении. В списках SELECT, ORDER BY, в конструкции WHERE и в аргументах функций и операторов могут использоваться все столбцы всех включенных в объединение таблиц.
По умолчанию такой SQL-запрос получит только те строки, которые точно удовлетворяют условия. На практике же бывает необходимо включить в результат все строки одной таблицы и соответствующие им столбцы другой, даже если во второй для них не найдено соответствия. Это вопрос решается с помощью указания во фразе WHERE знака плюс (+) после столбца таблицы, которую необходимо включить полностью. Такое описание условия отбора сообщает Oracle о том, что необходимо вернуть из одной таблицы даже те, которые не удовлетворяют заданному условию.
Объединений имеет следующую классификацию:
Внешние соединения (outer) использующие для представления данных все записи одной таблицы и соответствующие им значения из другой.
Внутренние соединения (inner) для представления данных хранящихся в одной таблице, но в разных столбцах (как в примере выше).
Внешнее объединение может быть левым или правым, в зависимости от стороны условия объединения, на которой расположен оператор внешнего объединения.
В многотабличных запросах можно использовать несколько внешних объединений. При этом оператор внешнего объединения не может быть использован в условии, которое объединено с другим условием с помощью логического оператора OR или в операторе IN.
