
- •Лекция 7. Операторы реляционной алгебры
- •Понятие реляционной алгебры
- •Основные операторы реляционной алгебры
- •1) Объединение: a union b
- •2) Пересечение: a intersect b
- •3) Вычитание: a minus b
- •4) Произведение: a times b
- •1) Выборка (или ограничение)
- •2) Проекция
- •3) Соединение
- •4) Деление: a divideby b
- •Операции расширения и подведения итогов
- •1. Расширение
- •2. Подведение итогов
- •Операторы обновления
- •1) Вставка записи
- •2) Удаление записи.
- •3) Обновление записи
1) Выборка (или ограничение)
Результатом выборки является отношение, содержащее все кортежи из исходного отношения, которые удовлетворяют определённому условию.
Пусть дано следующее отношение Students:
StudentID |
Name |
GroupID |
1 |
Казаков Петр |
2 |
2 |
Васильев Иван |
1 |
4 |
Шишкина Дарья |
2 |
5 |
Драгомиров Евгений |
1 |
6 |
Васнецова Евгения |
2 |
Выберем лишь тех студентов, которые принадлежат группе 2:
SELECT * FROM Students
WHERE GroupID = 2
Результатом выполнения будет отношение:
StudentID |
Name |
GroupID |
1 |
Казаков Петр |
2 |
4 |
Шишкина Дарья |
2 |
6 |
Васнецова Евгения |
2 |
2) Проекция
Результатом проекции является отношение, содержащее все кортежи после удаления из них некоторых атрибутов. В этом случае результирующие кортежи называются подкортежами.
Обратим внимание на два момента:
1) возможно указание всех атрибутов исходного отношения для проекции – получится тождественная проекция;
2) возможно указать пустой список атрибутов – получится нулевая проекция.
Осуществить проекцию можно указанием после SELECT списка необходимых атрибутов.
Пусть дано следующее отношение Students:
StudentID |
Name |
GroupID |
BirthDate |
1 |
Казаков Петр |
2 |
23.04.1990 |
2 |
Васильев Иван |
1 |
11.05.1991 |
4 |
Шишкина Дарья |
2 |
23.09.1991 |
Выберем из таблицы только имена и даты рождений:
SELECT Name, BirthDate FROM Students
Результатом выполнения будет отношение:
Name |
BirthDate |
Казаков Петр |
23.04.1990 |
Васильев Иван |
11.05.1991 |
Шишкина Дарья |
23.09.1991 |
3) Соединение
Результат соединения – это отношение, кортежи которого являются сочетанием двух кортежей, принадлежащих двум начальным отношениям и имеющих общие значения для одного или нескольких атрибутов (общее значение в результирующем отношении появляется только один раз).
Пусть дано следующее отношение Students:
StudentID |
Name |
GroupID |
BirthDate |
1 |
Казаков Петр |
2 |
23.04.1990 |
2 |
Васильев Иван |
1 |
11.05.1991 |
4 |
Шишкина Дарья |
2 |
23.09.1991 |
и отношение Groups:
GroupID |
GroupName |
1 |
ПМ-11 |
2 |
ПМ-12 |
3 |
ПМ-21 |
Соединим эти таблицы по полю GroupID и выведем имя студента и название учебной группы:
SELECT Name, GroupName FROM Students
INNER JOIN Groups ON Students.GroupID = Groups.GroupID
Результатом выполнения будет отношение:
Name |
GroupName |
Казаков Петр |
ПМ-12 |
Васильев Иван |
ПМ-11 |
Шишкина Дарья |
ПМ-12 |
Это соединение обладает свойствами ассоциативности и коммутативности.