СДЕЛАЙТЕ СВОИ УРОКИ ЕЩЁ ЭФФЕКТИВНЕЕ, А ЖИЗНЬ СВОБОДНЕЕ

Благодаря готовым учебным материалам для работы в классе и дистанционно

Скидки до 50 % на комплекты
только до

Готовые ключевые этапы урока всегда будут у вас под рукой

Организационный момент

Проверка знаний

Объяснение материала

Закрепление изученного

Итоги урока

Управление и автоматизация БД Практическая работа №3

Категория: Информатика

Нажмите, чтобы узнать подробности

Просмотр содержимого документа
«Управление и автоматизация БД Практическая работа №3»



Практическое занятие № 3

Тема: Создание запросов с командой UNION, INTERSECT

Цель работы: освоить создание SQL-запросов с использованием команд UNION, INTERSECT.

Приобретаемые умения и навыки: умение работать с командами UNION, INTERSECT в SQL Server Management Studio.

Норма времени: 2 часа.

Оборудование: Компьютер с установленным программным обеспечением и подключенный к Internet.

Методические указания по выполнению практической работы

Команды UNION, INTERSECT и EXCEPT (или MINUS) в SQL – это мощные инструменты, позволяющие комбинировать результаты нескольких SELECT запросов для получения более сложных и информативных наборов данных. Они относятся к операторам теории множеств.

1. UNION:

• Назначение: объединяет результаты двух или более SELECT запросов в один результирующий набор. Представляет собой операцию объединения множеств.

• Синтаксис:

SELECT column1, column2, ... FROM table1

UNION [ALL]

SELECT column1, column2, ... FROM table2

[UNION [ALL]

SELECT column1, column2, ... FROM tableN];

* Требования:

• Совместимость структуры: Все SELECT запросы в операторе UNION должны иметь одинаковое количество столбцов.

• Совместимость типов данных: Типы данных соответствующих столбцов в каждом SELECT запросе должны быть совместимы. Это не обязательно должны быть абсолютно идентичные типы, но СУБД должна уметь неявно или явно преобразовать их друг в друга.

• Порядок столбцов: Порядок столбцов в каждом SELECT запросе должен быть одинаковым. Именно порядок определяет, какие столбцы будут объединены.

• Поведение:

• Удаление дубликатов (UNION): По умолчанию, UNION удаляет все дублирующиеся строки из результирующего набора. То есть, если одна и та же строка присутствует в результатах нескольких SELECT запросов, она появится в результирующем наборе только один раз.

• Сохранение дубликатов (UNION ALL): Ключевое слово ALL после UNION указывает, что дублирующиеся строки должны быть сохранены в результирующем наборе. Это может быть полезно, если требуется точное количество строк из каждого запроса или если удаление дубликатов занимает много времени.

• NULL значения: NULL значения рассматриваются как равные друг другу при удалении дубликатов с помощью UNION.

• Пример: Предположим, у нас есть таблицы ActiveCustomers и InactiveCustomers, содержащие информацию о клиентах. Мы хотим получить полный список всех клиентов (активных и неактивных):

SELECT CustomerID, CustomerName FROM ActiveCustomers

UNION

SELECT CustomerID, CustomerName FROM InactiveCustomers;

2. INTERSECT:

• Назначение: Возвращает только те строки, которые присутствуют в результатах всех SELECT запросов. Представляет собой операцию пересечения множеств.

• Синтаксис:

SELECT column1, column2, ... FROM table1

INTERSECT

SELECT column1, column2, ... FROM table2

[INTERSECT

SELECT column1, column2, ... FROM tableN];

* Требования:

Требования к совместимости структуры и типов данных аналогичны UNION.

• Поведение:

• Удаление дубликатов: INTERSECT автоматически удаляет дублирующиеся строки. В отличие от UNION, нет способа сохранить дубликаты. Строка должна присутствовать в каждом результирующем наборе для того, чтобы попасть в конечный результат.

• NULL значения: NULL значения рассматриваются как равные друг другу при определении пересечения.

• Пример: Предположим, у нас есть таблицы Employees и Managers, содержащие информацию о сотрудниках и менеджерах. Мы хотим найти сотрудников, которые также являются менеджерами:

SELECT EmployeeID, EmployeeName FROM Employees

INTERSECT

SELECT EmployeeID, ManagerName FROM Managers;

Ход работы

1. Создать запрос с командой UNION.

2. Создать запрос с командой INTERSECT.

Контрольные вопросы:

  1. Для чего используется команда UNION?

  2. Для чего используется команда INTERSECT?