Проектирование баз данных для экономических информационных систем в среде сервера данных ORACLE 7.3. Меркулова Т.А - 75 стр.

UptoLike

77
7.3. Соединение таблиц при манипулировании данными
Стандарт SQL-92 предусматривает отличный от вышеописанного
сиснтаксис соединений. Современные сервера данных позволяют
выполнять различные типы соединений таблиц. Соединение,
выполняющее декартово произведение строк, называют
перекрестным соединением (cross join), а соединение по совпадению
значений заданного столбца называют естественным соединением
(nature join).
<перекрестное_соединение>::= таблица А cross join таблица В
<естественное_соединение>::= таблица А nature [тип_соединения]
join таблица В [атрибут]
таблица А union [тип_соединения] join таблица В [атрибут]
<атрибуты>::= ON <предикат> using (<имя столбца>, ....)
Использование предиката ON позволяет отфильтровать строки, а
предложение using позволяет задать имена столбцов, которые
объединяют таблицы.
[тип_соединения] ::= {left/right/full}
AB
Таб_номер Фамилия Фамилия Аудитория
001
002
003
Иванов
Петров
Сидоров
Иванов
Петров
Кузнецов
413
411
420
A cross join B
Таб_номер Фамилия Фамилия Аудитория
001
001
……….
Иванов
Иванов
…….
Иванов
Петров
…….
413
411
……
A nature join B
Таб_номер Фамилия Аудитория
001
002
……….
Иванов
Петров
…….
413
411
……
Рис. 3.5. Пример соединения таблиц
Объединение, соединение таблиц (рис. 3.5.) в рамках одного запроса
может позволить сократить объем исходного кода приложения за счет
использования дополнительных возможностей оператора select.
Сложные запросы обладают недотерминированностью с точки зрения
реализации.
Предикаты в стандарте SQL являются предикатами трехзначной
логики, поэтому необходимо про каждую реализацию знать, каким