Субд лекции

Темы:

Формирование запросов к связанным таблицам

Image

Исходя из вышесказанного, можно дать следующие рекомендации:

1.     При задании запроса удаляйте из него все таблицы, поля которых не участвуют в формировании запроса.

2.     При проектировании структуры базы данных тщательно продумывайте имена, которые даете полям разных таблиц.

3.     Проверяйте связи, которые система задает автоматически.

Существуют понятия внутреннего, левого и правого соединения.

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

Изменить тип объединения в запросе можно, выделив нужную связь и нажав на правую кнопку мыши. В появившемся контекстном меню выбрать Параметры объединения (рис. 6.19) либо позицию меню Вид/Параметры объединения - появится окно Параметры объединения (рис. 6.20), в котором можно выбрать нужный для данного запроса тип объединения. Так, например, если требуется выдать список всех сотрудников, а для тех, кто имеет детей, - информацию о детях, то для соединения таблиц «Сотрудники» и «Дети» следует выбрать вторую альтернативу в окне Параметры объединения.

Image

Запрос, приведенный на рис. 6.21, при всей своей схожести с запросом на рис. 6.18, даст иной ответ, поскольку изменен тип объединения.

Возможно создание запросов, в которых таблица соединяется сама с собой (так называемое самообъединение). Такая ситуация может возникнуть, когда в ER-модели имеются отношения на одном и том же классе объектов. Например, для класса объектов СОТРУДНИК имеется связь «Быть руководителем». В рассматриваемом примере для отражения этой связи в таблицу «Сотрудники» введено поле «Руководитель», которое содержит код сотрудника, являющегося руководителем данного сотрудника.

предыдущаяследующая