Операции над множествами




В языке SQL можно использовать обычные операции над множествами — объединение (union), пересечение (intersection) и разность (difference), — позволяющие комбинировать результаты выполнения двух и более запросов в единую результирующую таблицу. Объединением двух таблиц А и В называется таблица, содержащая все строки, которые имеются в первой таблице (А), во второй таблице (В) или в обеих этих таблицах сразу. Пересечением двух таблиц называется таблица, содержащая все строки, присутствующие в обеих исходных таблицах одновременно. Разностью двух таблиц А и В называется таблица, содержащая все строки, которые присутствуют в таблице А, но отсутствуют в таблице В. Все эти операции над множествами графически представлены на рисунок 1.

 

 




 


 


(а)объединение


(b)пересечение


(с)разность


Рисунок 1. Графическое представление операций над множествами (соединение, пересечение и разность)

На таблицы, которые могут комбинироваться с помощью операций над множествами, накладываются определенные ограничения. Самое важное из них состоит в том, что таблицы должны быть совместимы по соединению — т.е. они должны иметь одну и ту же структуру. Это означает, что таблицы должны иметь одинаковое количество столбцов, причем в соответствующих столбцах должны размещаться данные одного и того же типа и длины. Обязанность убедиться в том, что значения данных соответствующих столбцов принадлежат одному и тому же домену, возлагается на пользователя. Например, мало смысла в том, чтобы объединять столбец с данными о возрасте работников с информации о количестве комнат в сдаваемых в аренду объектах, хотя оба столбца будут иметь один и тот же тип данных — SMALL INT.

Три операции над множествами, предусмотренные стандартом ISO, носят название UNION, INTERSECT и EXCEPT. В каждом случае формат предложения с операцией над множествами должен быть следующим:

operator [ALL] [CORRESPONDING [BY {columnl [,...]}]]

Синтаксис UNION: Спецификация запроса_1>

UNION[ALL] Спецификация запроса_2>

UNION [ALL] Спецификация запроса_п>

Условие CORRESPONDING

При указании условия CORRESPONDING BY операция над множествами выполняется для указанных столбцов. Если задано только ключевое слово CORRESPONDING, а слово BY отсутствует, операция над множествами выполняется для столбцов, которые являются общими для обеих таблиц. Если указано ключевое слово ALL, результирующая таблица может содержать дублирующиеся строки.

Одни диалекты языка SQL не поддерживают операций INTERSECT и EXCEPT, а в других вместо ключевого слова EXCEPT используется ключевое слово MINUS.

ПРИМЕР: Использование операции UNION

Создайте список всех регионов, в которых либо находится отделение компании, либо располагаются сдаваемые в аренду объекты.

(SELECT area FROM branch WHERE area IS NOT NULL) ONION (SELECT area FROM property for rent WHERE area IS NOT NULL); или (SELECT * FROM branch WHERE area IS NOT NULL) UNION CORRESPONDING BY area (SELECT * FROM property for rent WHERE area IS NOT NULL);

Этот запрос выполняется посредством подготовки результирующей таблицы первого запроса и результирующей таблицы второго запроса с последующим слиянием обеих таблиц в единую результирующую таблицу, которая включает все строки из обеих промежуточных таблиц, но с удалением дублирующихся строк.

ЗАДАНИЕ:

Создайте условия для объединения результатов выборки.

 

Рассмотрим варианты реализации запросов в Visual FoxPro.

Вариант 1. В окне Вашего проекта на вкладке «Data» выберите пункт «Queries» и нажмите кнопку «New». В появившемся окне необходимо выбрать пункт «New Query».

Далее перед Вам необходимо в дизайнер запросов добавить таблицы из Вашей БД, с которыми Вы будете работать (рисунок 2).


 

Рисунок 2. Добавление таблиц.

Далее в конструкторе запросов с помощью вкладок (рисунок 3):

– Fields – Поля;

– Join –

– Filter – Фильтр;

– Order By –

– Group By –

– Miscellaneous –.

Вам необходимо создать свои запросы.

Рисунок 3. Построитель запросов.

Вариант 2. В построителе запросов на панели дополнительного меню «Query Designer» (рисунок 4) необходимо выбрать кнопку [Show the SQL window].

Рисунок 4. Меню «Построитель запросов».

В открывшемся окне необходимо разобраться в написании языка SQL, а затем самостоятельно создать свои запросы.

Затем, воспользовавшись кнопкой [Query Destination] на панели дополнительного меню, выбрать способ вывода результата созданного Вами запроса.

ЗАДАНИЕ:

Необходимо освоить оба варианта создания запросов. А также уметь рассказать, показать создание и вызов запросов с помощью командной строки.

В итоге должно быть не менее 20 различных запросов разной степени сложности.

 



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2016-04-27 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: