ГЛАВА 22. Запросы к множеству таблиц.

ГЛАВА 22. Запросы к множеству таблиц.

Динамический SQL Firebird поддерживает три варианта запросов к множеству таблиц с помощью одного оператора SQL: соединения (joins), подзапросы (subqueries) и объединения (unions). Результат соединений, столбцов подзапроса и объединений является по своей природе набором данных только для чтения.

Firebird не поддерживает многотабличные запросы, которые находятся в нескольких базах данных. Тем не менее возможен запрос к нескольким таблицам одновременно из нескольких баз данных внутри одной транзакции, имеющей полное двухфазное завершение (two-phase commit- 2РС). Клиентские приложения могут сопоставлять данные и выполнять отдельные операторы манипулирования данными в пределах базы данных. Мультибазовые транзакции обсуждаются в части VI.

В этой главе мы рассмотрим три метода динамического поиска данных в нескольких таблицах[77] в контексте одного оператора и одной базы данных: соединения, подзапросы и объединения.

Данная глава завершается темой оптимизации, где рассматриваются планы выполнения запросов, и как оптимизатор Firebird выбирает и использует индексы для создания этих планов. Понимание того, как оптимизатор "думает", может быть полезным при проектировании хорошо сформированных индексов и создании операторов запросов.

Виды многотабличных запросов

Три метода поиска данных во множестве таблиц довольно сильно отличаются друг от друга и, как правило, выполняют различные виды поисковых задач. Поскольку соединения и подзапросы используют слияние потоков данных из строк различных таблиц, их роли частично совпадают при некоторых условиях. Коррелированный подзапрос, который может создавать относительные связи между колонками главной таблицы, иногда может содержать спецификации для получения того же результата, что и соединение, без использования самого соединения. С другой стороны, объединения запросов не используют слияние потоков; напротив, они "собирают" строки. Их роль никогда не совпадает с ролью запросов соединения или подзапросов.

Соединения, подзапросы и объединения не являются взаимоисключающими, несмотря на то, что результат объединения не может быть соединен один с другим или с другими результатами. Спецификации соединения и объединения могут включать подзапросы, и некоторые подзапросы могут содержать соединения.

Поделитесь на страничке

Следующая глава >

Похожие главы из других книг:

Глава 3 Создание таблиц

Из книги автора

Глава 3 Создание таблиц 3.1. Что такое таблица3.2. Создание тела таблицы3.3. Ячейки таблицы3.4. Граница таблицы3.5. Ширина и высота таблицы и ячеек3.6. Группировка строк и столбцов3.7. Выравнивание таблицы и содержимого ячеек3.8. Объединение ячеек таблицы3.9. Установка фонового цвета


Глава 2 Создание и применение таблиц стилей

Из книги автора

Глава 2 Создание и применение таблиц стилей В предыдущей главе был представлен обзор XSLT. В этой главе мы начинаем детальную работу с ним. Мы собираемся научиться рассматривать документы в терминах XSLT, структурировать таблицу стилей XSLT и встраивать в документы таблицы


ГЛАВА 12. Параметры таблиц 

Из книги автора

ГЛАВА 12. Параметры таблиц  В предыдущей главе мы научились создавать у элементов Web-страниц отступы, рамки и выделение и применили свои умения на практике, сделав наши Web-страницы еще привлекательнее. Заодно мы наконец-то создали полную полосу навигации, включающую


ГЛАВА 12. Параметры таблиц

Из книги автора

ГЛАВА 12. Параметры таблиц В предыдущей главе мы научились создавать у элементов Web-страниц отступы, рамки и выделение и применили свои умения на практике, сделав наши Web- страницы еще привлекательнее. Заодно мы наконец-то создали полную полосу навигации, включающую


Глава 3. Порядок прохождения таблиц и цепочек

Из книги автора

Глава 3. Порядок прохождения таблиц и цепочек В этой главе мы рассмотрим порядок прохождения таблиц и цепочек в каждой таблице. Эта информация будет очень важна для вас позднее, когда вы начнете строить свои наборы правил, особенно когда в наборы правил будут включаться


Глава 7 Создание таблиц и слияние документов

Из книги автора

Глава 7 Создание таблиц и слияние документов Практически каждому бухгалтеру приходится создавать, заполнять и оформлять таблицы, ведь таблицы – действительно удобная форма для отображения данных. Данная глава посвящена приемам создания и форматирования электронных


Глава 5 Запросы на выборку

Из книги автора

Глава 5 Запросы на выборку Создание простого запросаИзменение запросаСложные запросыИспользование запросаРезюмеВ этой главе вы познакомитесь с объектом запрос и его использованием в Microsoft Access 2007; узнаете, какие бывают виды запросов, на практике рассмотрите процесс


Глава 17. СОЗДАНИЕ ТАБЛИЦ

Из книги автора

Глава 17. СОЗДАНИЕ ТАБЛИЦ ВПЛОТЬ ДО ЭТОГО МЕСТА, МЫ ЗАПРАШИВАЛИ ТАБЛИЦЫ данных и выполняли команды по извлечению этих данных, считая, что эти таблицы уже были созданы кем - то до нас . Это действительно наиболее реальная ситуация, когда небольшое колличество людей создают


ГЛАВА 2 Запросы и команды на языке SQL

Из книги автора

ГЛАВА 2 Запросы и команды на языке SQL В главе 1, "Основы построения баз данных", где демонстрируется создание базы данных с помощью Visual Studio .NET и SQL Server, вы познакомились со структурой базы данных и ее таблиц. В настоящей главе основное внимание уделяется манипулированию


Глава 2. Типы памяти и таблиц

Из книги автора

Глава 2. Типы памяти и таблиц MySQL поддерживает несколько типов памяти, которые действуют как драйверы для различных типов таблицы.С MySQL 5.1 MySQL AB представил новую подключаемую архитектуру памяти, которая позволяет типам памяти загружаться и выгружаться по мере надобности.


Глава 36. Редактирование таблиц

Из книги автора

Глава 36. Редактирование таблиц В процессе редактирования таблицы вы имеете возможность:• Объединить содержимое ячеек или строк• Разбить содержимое ячеек• Разбить содержимое строки (столбца)• Удалить содержимое ячейкиКак объединить содержимое ячеек или


ГЛАВА 20. Запросы DML.

Из книги автора

ГЛАВА 20. Запросы DML. Приложения пользователя могут получить доступ к таблицам Firebird только одним путем - выполняя к ним запрос. По своей сущности запрос является оператором SQL, который передается на сервер. Оператор SQL является выражением, состоящим из ключевых слов, фраз и


Глава 3 Создание таблиц новой базы данных

Из книги автора

Глава 3 Создание таблиц новой базы данных Как уже было сказано в главе 2, разработка новой базы данных «Контрольно-измерительные приборы» производится в программной среде Access 2002.Формирование БД в Access состоит из ряда последовательных этапов, описываемых ниже. Первый этап