
Лабораторные_задания / Лабораторная работа 4
.docx-
Лабораторная работа №9. Объединение таблиц
-
Цель работы
-
Научиться использовать предложение SELECT для выборки данных из нескольких таблиц.
-
Указания к работе
Декартово произведение n таблиц – это таблица, содержащая все возможные строки r, такие, что r является сцеплением какой-либо строки из первой таблицы, строки из второй таблицы, ... и строки из n-й таблицы. Для получения декартова произведения надо указать в предложении SELECT все столбцы таблиц, указанных в операторе FROM. Так, для получения декартова произведения таблиц goods и vendors сформируем следующий запрос:
SELECT goods.*, vendors.* FROM goods, vendors;
Получим таблицу, содержащую 5 х 8 = 40 строк и 7 + 2 = 9 столбцов.
Из полученного набора данных актуальными будут только несколько строк, а именно – те, где совпадают идентификаторы производителя (goods.vendor = vendors.code).
Изменение приведенного запроса так, чтобы получить результаты, имеющие практическую значимость, приведет к формированию эквисоединения таблиц:
SELECT goods.*, vendors.* FROM goods, vendors WHERE goods.vendor = vendors.code
Легко заметить, что эквисоединение дает некоторую избыточность выборки - в результат запроса попадут дубликаты столбцов, по которым производилось объединение. Исключение подобной избыточности дает естественное соединение таблиц, реализуемое, в нашем примере, таким запросом:
SELECT goods.code, goods.name, goods.coast, goods.count, vendors.code, vendors.vendor, goods.description FROM goods, vendors WHERE goods.vendor = vendors.code;
Последним типом соединения является композиция таблиц, которая может быть получена из предыдущего запроса путем полного исключения столбцов, по которым производилось связывание. Т.е., запрос примет такой вид:
SELECT goods.code, goods.name, goods.coast, goods.count, vendors.vendor, goods.description FROM goods, vendors WHERE goods.vendor = vendors.code;
-
Задания к лабораторной работе
Выполнить по 2-4 запроса (каждого из рассмотренных выше видов) к созданным в предыдущих работах таблицам.
ВАЖНО! В декартово произведение включайте таблицы с небольшим количеством записей для ускорения обработки и вывода результатов.