ВУЗ:
Составители:
Рубрика:
– 105 –
ничивается, но, как правило, отношения между таблицами создаются с помо-
щью одной пары столбцов, реже с помощью двух или трех.
Правила выполнения многотабличных запросов на
выборку
Написать правильную инструкцию
SELECT для простых многотабличных за-
просов не сложно. Но если многотабличный запрос составлен из многих таблиц с
использованием сложных условий отбора, то инструкция многотабличного запро-
са становится трудной для понимания. Поэтому сначала приведем более точное
определение понятия «объединения».
Объединение – это подмножество декартова произведения двух таблиц. Про-
изведение двух таблиц представляет собой
таблицу, состоящую из всех возмож-
ных пар строк обеих таблиц, составленной из всех столбцов первой таблицы, за
которыми следуют все столбцы второй таблицы. На основе понятия декартова
произведения, определим формальное определение правил выполнения многотаб-
личных запросов на выборку.
А теперь приведем правила, раскрывающие смысл любого многотабличного
запроса на выборку и позволяющие
определять процедуру.
1. Сформировать произведение таблиц, перечисленных в предложении
FROM.
2. Если имеется предложение
WHERE, применить заданное в нем условие отбора
к каждой строке таблицы произведения и оставить в ней те строки, для которых
это условие выполняется.
3. Для каждой из оставшихся строк сформировать строку результирующей
таблицы, включающей столбцы, указанные в предложении
SELECT.
4. Если в предложении
SELECT указано ключевое слово DISTINCT, то повто-
ряющиеся строки из результирующей таблицы удаляются.
5. Если в запросе имеется предложение
ORDERBY, результирующая таблица
сортируется.
4.5.3. В
НЕШНЕЕ ОБЪЕДИНЕНИЕ ТАБЛИЦ
Как уже было описано выше, операция объединения соединяет данные из
двух таблиц, формируя пары связанных строк из этих таблиц. При внутреннем
объединении все записи, для которых не находится пары в другой таблице, просто
игнорируются. Поэтому если строка одной из таблиц не имеет пары, то такое объ-
единение (внутреннее) может привести
к неожиданным результатам.
Рассмотрим следующий пример.
Вывести список служащих и городов, где
они работают:
SELECTFAMILY,NAME,CITY
FROMzakazy.sluzhaschies,zakazy.offisyo
WHEREo.id_ofc=s.id_ofc
Результат выполнения этого запроса приведен на Рис. 4.4. .
Страницы
- « первая
- ‹ предыдущая
- …
- 103
- 104
- 105
- 106
- 107
- …
- следующая ›
- последняя »
