Вопрос № 17 Многотабличные запросы
Оператор select реализует любые запросы на базе одной или нескольких таблиц. Один оператор select реализует все операции реляционной алгебры. Общий вид оператора:
select [all/distinct] * /
from
[where ]
[group by
[hewing ]]
[order by ]
Оператор select возвращает в качестве результата отношение. Однако это отношение не удовлетворяет ограничениям реляционной модели т.к. оно может содержать одинаковые строки. Кроме того, результатом может быть и пустое отношение, а также значения вычисляемые.
Фраза all означает, что в результирующем отношении включены все строки и в том числе строки – дубликаты. Если не указать ни all ни distinct будет all.
distinct – строки – дубликаты из результирующего отношения вычеркиваются.
* - в результирующее отношение войдут все столбцы исходных таблиц.
Если задан список, в результирующее отношение войдут только те столбцы, которые перечислены в списке. Список столбцов может создавать столбец вычисляемый т.е. не существующий в исходных таблицах. После выражения определяющего способ получения такого столбца можно задать его имя as From из каких таблиц осуществляется извлечение данных. В списке таблицы перечисляются через запятую.
where для однотабличных запросов реализует операцию выборки, т.е. в результирующее отношение включаются только те строки, которые удовлетворяют заданному условию. В запросах на базе нескольких таблиц все исходные таблицы сначала соединяются в единую таблицу и во фразе where указываются условия соединения, как правило, естественное соединение.
group by создает группы строк с одинаковыми значениями в заданных столбцах. По этим группам можно получить некоторые итоги.
having осуществляет отбор групп в соответствии с заданными условиями.
order by обеспечивает упорядочение трок результирующего отношения по значениям заданных столбцов.
Многотабличные запросы: Строятся на базе нескольких таблиц. В таких запросах используют псевдонимы таблиц. Все исходные таблицы соединяются в единую таблицу, как правило, по общим столбцам с помощью фразы where. Пример: Вывести информацию о договорах заключенных агентом договоров.
Select d.id, d.data, d.summa,
From agent_a, dogovor d.
Where d.kod_agenta = a.tab_n
and a.fio = ‘Иванов’
Сначала обе таблицы соединяться по первичному ключу, затем выбирается Иванов и информация о договорах.
Оператор select реализует любые запросы на базе одной или нескольких таблиц. Один оператор select реализует все операции реляционной алгебры. Общий вид оператора:
select [all/distinct] * /
from
[where ]
[group by
[hewing ]]
[order by ]
Оператор select возвращает в качестве результата отношение. Однако это отношение не удовлетворяет ограничениям реляционной модели т.к. оно может содержать одинаковые строки. Кроме того, результатом может быть и пустое отношение, а также значения вычисляемые.
Фраза all означает, что в результирующем отношении включены все строки и в том числе строки – дубликаты. Если не указать ни all ни distinct будет all.
distinct – строки – дубликаты из результирующего отношения вычеркиваются.
* - в результирующее отношение войдут все столбцы исходных таблиц.
Если задан список, в результирующее отношение войдут только те столбцы, которые перечислены в списке. Список столбцов может создавать столбец вычисляемый т.е. не существующий в исходных таблицах. После выражения определяющего способ получения такого столбца можно задать его имя as From из каких таблиц осуществляется извлечение данных. В списке таблицы перечисляются через запятую.
where для однотабличных запросов реализует операцию выборки, т.е. в результирующее отношение включаются только те строки, которые удовлетворяют заданному условию. В запросах на базе нескольких таблиц все исходные таблицы сначала соединяются в единую таблицу и во фразе where указываются условия соединения, как правило, естественное соединение.
group by создает группы строк с одинаковыми значениями в заданных столбцах. По этим группам можно получить некоторые итоги.
having осуществляет отбор групп в соответствии с заданными условиями.
order by обеспечивает упорядочение трок результирующего отношения по значениям заданных столбцов.
Многотабличные запросы: Строятся на базе нескольких таблиц. В таких запросах используют псевдонимы таблиц. Все исходные таблицы соединяются в единую таблицу, как правило, по общим столбцам с помощью фразы where. Пример: Вывести информацию о договорах заключенных агентом договоров.
Select d.id, d.data, d.summa,
From agent_a, dogovor d.
Where d.kod_agenta = a.tab_n
and a.fio = ‘Иванов’
Сначала обе таблицы соединяться по первичному ключу, затем выбирается Иванов и информация о договорах.