Запрос 35. Вывести фамилии ассистентов факультета математики и
информатики.
SELECT TEACHER.NAME_TEACHER AS ‘Ассистенты ф-та математики и
информатики’
FROM FACULTET, KAFEDRA, TEACHER
WHERE FACULTET.Kod_faculteta = KAFEDRA.Kod_faculteta AND
KAFEDRA.Kod_kafedru = TEACHER.Kod_kafedru AND
FACULTET.Name_faculteta ='Математики и информатики' AND
TEACHER.DOLGNOST = 'ассистент';
В этом случае для ответа нужны две таблицы — факультетов и преподавателей.
Однако они связаны между собой опосредованно, через таблицу кафедр. Поэтому для
соединения таблиц факультетов и преподавателей следует использовать таблицу кафедр.
Сформулируем общую процедуру составления многотабличного запроса и
приведем пример ее использования.
1. Определить множество таблиц, необходимых для ответа на запрос. В это
множество должны входить таблицы, на столбцах которых сформулированы условия, а
также те, столбцы которых необходимо вывести. Это так называемые базовые таблицы
запроса.
2. В структуре взаимосвязанных таблиц найти путь, соединяющий базовые
таблицы. Это так называемый путь вычисления запроса. В результате вы получите
перечень таблиц, необходимых для формулировки запроса. Это так называемые таблицы
запроса.
3. Во фразе FROM перечислить необходимые таблицы.
4. Во фразе WHERE соединить таблицы запроса и при необходимости задать
условия отбора строк в базовых таблицах запроса.
5. Во фразе SELECT перечислить выводимые столбцы.
Вывод всех столбцов соединяемой таблицы
В многотабличном запросе конструкция SELECT * означает выбор всех столбцов
соединенной таблицы. Например, результирующая таблица следующего запроса состоит
из 21 столбца: 5 столбцов таблицы факультетов, 6 столбцов таблицы кафедр и 10
столбцов таблицы преподавателей.
Запрос 36.
Do'stlaringiz bilan baham: |