Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Объединение таблиц в запросеСодержание книги
Похожие статьи вашей тематики
Поиск на нашем сайте
Access делает удивительно легким объединение двух таблиц. Первый шаг — добавление обеих таблиц в ваш запрос, с помощью диалогового окна Добавление таблицы (Show Table). Если в Конструкторе создается новый запрос, это окно появляется немедленно. Если вы работаете над уже созданным запросом, убедитесь, что вы в режиме Конструктора, щелкните правой кнопкой мыши окно и выберите в меню строку Добавление таблицы. Если связь между таблицами уже определена (с помощью схемы данных, как описано в разд. "Определение отношения" главы 5, или созданием подстановки, как описано в разд. "Поиск в связанных таблицах" главы 5), программа Access использует эту связь для автоматического выполнения операции объединения. Вы увидите на схеме линию, соединяющую соответствующие поля, как показано на рис. 6.17.
Рис. 6.17. Access автоматически соединяет поле CustomerlD в таблице Orders с полем ID в таблице Customers, основываясь на связи, определенной в БД Если связь между двумя связанными таблицами еще не определена, возможно, это следует сделать до того, как создавать запрос (см. подробные инструкции в главе 5). Но если вы по каким-то непонятным причинам решили не создавать связь (может быть, проект БД был введен в эксплуатацию другим, менее сообразительным специалистом Access), вы можете задать объединение вручную в окне запроса. Для этого просто перетащите мышью связанное поле одной таблицы на совпадающее поле в другой. Можно также удалить объединение, щелкнув правой кнопкой мыши линию объединения и выбрав команду Удалить (Delete). Примечание Если вы добавляете две несвязанные таблицы, программа Access пытается угадать связь, чтобы помочь вам. Если она находит поле с одинаковыми типами данных и именем в обеих таблицах, она добавляет связь для этих полей. Подобное действие зачастую совсем не то, что вам нужно — например, у многих таблиц есть общее поле Код (ID). Однако если вы строго соблюдаете правила проектирования БД, приведенные в разд. "Шесть правил проектирования БД" главы 2, у связанных полей имена в разных таблицах слегка отличаются, например ID и CustomerID. Если программа все же предлагает несуществующую связь, просто удалите ее, прежде чем выполнять нужное объединение.
На профессиональном уровне. Сравнение: отношения и объединения
Важно понимать различия между отношением или связью и запросом с операцией объединения. • Отношение — постоянная связь между двумя таблицами, хранящаяся в БД. Когда создается отношение в БД, есть возможность включить режим обеспечения целостности данных: набора правил, препятствующих проникновению противоречивых данных в связанные таблицы (см. разд. "Целостность на уровне ссылок " главы 5). • Объединение — операция запроса, позволяющая соединять связанные данные из двух таблиц в одном результирующем наборе. Объединение не влияет на то, как вы вводите и редактируете объединенные данные в базовых таблицах. Если отношение установлено, Access считает, что вы хотите использовать операцию объединения для связи этих таблиц в запросе — единственное действие, имеющее смысл. После того как вы поместили две таблицы в окно Конструктора запросов и определили операцию объединения, можно выбирать нужные вам поля из обеих таблиц. Можно также добавить условия отбора записей и задать порядок их сортировки, как в запросе любого другого типа. На рис. 6.18 показан пример запроса, использующего операцию объединения, а на рис. 6.19 — результат выполнения этого запроса.
Примечание Если у вас две таблицы, легко забыть, что вы выводите на экран. Если объединяются таблицы Orders и Customers, а затем из каждой выбираются поля, что вы получите в результате: список заказов или список клиентов? Ответ прост — вы получаете список заказов, дополненный информацией о клиентах. Запросы со связанными таблицами всегда обрабатывают таблицу-потомок и берут дополнительную информацию из таблицы-родителя.
Примечание При выполнении объединения вы видите повторяющуюся информацию. Если объединяются таблицы Customers и Orders, вы видите имя и фамилию самого активного клиента рядом с несколькими заказами. Но при этом правило запрета дублирующихся данных не нарушается. Несмотря на то, что сведения о клиенте появляются в нескольких местах на листе данных с результатами запроса, в таблице Customers они сохраняются всего один раз.
Когда вы связываете родительскую и дочернюю таблицы с помощью запроса с операцией объединения, то выполняете запрос, получающий все записи из дочерней таблицы, и затем добавляете дополнительную информацию из родительской таблицы. Страница в конце
Рис.6.18. Этот запрос отображает данные из таблиц Orders и Customers. Неважно, из какой таблицы первое поле – в любом случае вы создаете список заказов с дополнительными сведениями о клиентах. Обратите внимание на строку Имя таблицы (Table) (под строкой Поле), указывающую на таблицу, из которой в запрос попадает каждое поле
Рис.6.19. Вы легко можете при беглом просмотре увидеть, кто что заказал. Столбец ID содержит идентификационный номер заказа (хотя вы могли бы отобразить идентификационные номера как таблицы Customers, так и таблицы Orders)
Например, можно применить запрос с объединением для получения списка заказов (из дочерней таблицы) и дополнения каждой записи информацией о клиенте, сделавшем заказ. Независимо от способа объединения вы никогда не получите список клиентов с присоединенной информацией о заказе — в этом нет смысла, поскольку каждый клиент может сделать много заказов. Операции объединения — одно из самых мощных средств в наборе инструментов любого разработчика запросов. Они позволяют отображать одну таблицу со всей нужной вам информацией.
Примечание Когда используется несколько таблиц, всегда есть риск наличия одноименных полей в обеих таблицах. Такая возможность не страшна, если вы не собираетесь отображать эти поля в вашем запросе, но если это не так, возможны проблемы. Единственный способ различить поля — переименовать одно из них на листе данных с результатами запроса. Из примечания "Малоизвестная или недооцененная возможность, Переименование поля в запросе" в разд. "Определение вычисляемого поля" главы 7 вы узнаете, как это сделать с помощью вычисляемого поля.
На профессиональном уровне.
|
|||||||||||||
Последнее изменение этой страницы: 2016-08-14; просмотров: 427; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.138.122.90 (0.011 с.) |