Примеры
Пример 1
Дано: Отношение Студенты(ФИО, Номер_зк); и Группы (Номер_зк, Группа). Обозначим Студенты – R1, а Группы - R2.
Считаем, что R2(Номер_зк) – внешний ключ на одноименный атрибут в отношении R1.
Отношения R1 и R2 содержат следующие кортежи:
R1 (студенты)
ФИО | Номер з.к.
| Бек А.Е. | 030303
| Бец А.Т. | 040404
| Тхо Н.Х. | 050505
|
R2 (группы)
Номер з.к. | АА21
| 030303 | АА31
| 040404 | АА41
| 050505 | ВИ11
|
Надо: Написать запрос SQL выбирающий номера зачетных книжек тех студентов, которые обучались хотя бы в одной группе.
Решение:
SELECT r1.Номер_зк FROM r1,r2 WHERE r1.Номер_зк = r2.Номер_зк;
Результат выполнения запроса:
Номер з.к.
| 030303
| 040404
| 050505
|
Пример 2
Дано: Отношение Оценки(ФИО, Дисциплина, Оценки); Группы (ФИО, Группа); и Дисциплины (Группа, Дисциплина). Обозначим Оценки – R3, Группы – R4, Дисциплины – R5.
R3 (оценки)
ФИО | Дисциплина | Оценка
| Петров Ф.И. | Базы данных | 5
| Сидоров К.А.td>Базы данных | 4
| Миронов А.В. | Базы данных | 2
| Петров Ф.И. | Моделирование | 5
| Миронов А.В. | Моделирование | Null
| Трофимов П.А. | Сети ЭВМ | 4
| Уткина Н.В. | Сети ЭВМ | 5
|
R4 (группы)
ФИО | Группа
| Петров Ф.И. | АИ21
| Сидоров К.А. | АИ21
| Миронов А.В. | АИ21
| Трофимов П.А. | АИ22
| Уткина Н.В. | АИ22
|
R5 (дисциплины)
Группа | Дисциплина
| АИ21 | Базы данных
| АИ21 | Моделирование
| АИ22 | Сети ЭВМ
| АИ22 | Базы данных
|
Надо: Вывести все оценки студентов в алфавитном порядке по убыванию ФИО.
Решение:
SELECT r3.ФИО, r3.Оценка FROM r3 ORDER BY r3.ФИО DESC;
Пример 3
Надо: Вывести оценки студентов (отношение R3 из примера 2), не проходивших итоговую аттестацию (NULL – значения), либо получивших неудовлетворительную оценку. Сортировка по полю ФИО по возрастанию.
Решение:
SELECT r3.ФИО, r3.Оценка FROM r3 WHERE (r3.Оценка IS NULL) OR (r3.Оценка < 3) ORDER BY r3.ФИО;
В примере 3 скобки не являются обязательными.
|