- •Цель работы: изучение методов создание связей и объединений в запросах.
- •Работа в окне конструктора таблиц
- •Изменение размера верхней части окна конструктора запросов
- •Перемещение макетов таблиц
- •Просмотр имен таблиц
- •Ограничения в многотабличных запросах
- •Ограничения, накладываемые на обновление записей
- •Советы по созданию обновляемых полей в запросах
- •Связывание таблиц
- •Удаление связей
- •Типы связей между таблицами
- •Внутренние объединения
- •Изменение свойств связи
- •Создание левого внешнего объединения
Создание левого внешнего объединения
Вернитесь в окно конструктора запроса и снова дважды щелкните на линии связи между таблицами Customer и Pets. В диалоговом окне Параметры объединения выберите третий переключатель, в котором предлагается включить все записи из таблицы Pets. Затем щелкните на кнопке ОК. Обратите внимание, что стрелка теперь направлена в сторону таблицы Customer, как показано на рис.13. Такое объединение называется левым внешним объединением. (Внешние объединения можно легко различить: если стрелка в верхней части окна конструктора запросов направлена вправо, связь называется правым внешним объединением, а если влево — левым внешним объединением.)
Для отображения этого динамического набора данных щелкните на кнопке Режим таблицы. Теперь прокрутите таблицу вниз до записи под номером 68, как показано на рис.14. Вы увидите запись, в полях Customer Number и Customer Name которой ничего нет. Все, что вы можете в ней увидеть, — это запись Апimal Nаmе, в которой указана кличка Вгоwniе, и то, что это животное является собакой. Эта запись появилась в результате выбора такого свойства объединения, которое включает все записи из таблицы Pets. В терминологии баз данных этот тип связи называется левым внешним объединением.
Создание декартового произведения
Допустим, вы поместили в окно конструктора запросов таблицы Customer и Pets и задали между ними связь. В этом случае Ассеss сначала свяжет первую запись из таблицы Customer со всеми записями таблицы Pets, а затем — вторую запись со всеми записями таблицы Pets . Такое связывание записей таблиц даст 6321 запись в итоговом динамическом наборе данных. Связывание каждой записи в одной таблице с каждой записью в другой приводит к декартовому произведению (перекрестному произведению) обеих таблиц.
Резюме
В этой лабораторной работе рассмотрены методы задания связи между таблицами и использования объединений в запросах.
• В запрос можно добавлять несколько таблиц, в том числе несколько копий одной и той же таблицы.
• Ассеss автоматически создает линии связи для всех таблиц, в которых установлена связь на уровне таблиц.
• В многотабличных запросах поля можно добавлять в произвольном порядке. Поля нескольких таблиц перемещаются и изменяются так же, как и поля отдельных таблиц.
• Для просмотра данных из двух или более таблиц их следует объединить.
• Объединить таблицы можно путем перетаскивания поля из одной таблицы и опускания его в другую таблицу. При этом Асееss создаст между этими полями линию связи.
• Существует два типа объединений — внутренние (равные) и внешние.
• Внутренние объединения отображают все записи, которые имеют общее поле в обеих таблицах с соответствующими друг другу данными в этих полях.
• Внешние объединения отображают все записи, которые имеют соответствующие друг другу данные в обоих полях. Они также показывают записи из одной таблицы, которые не имеют подчиненных им данных в другой таблице.
• Существует два вида внешних объединений: левые и правые. Для указания вида объединения в Ассеss в верхней части окна конструктора запроса используется стрелка.
