
- •Розділ 5. Системи керування базами даних
- •Лекция 1. Основные понятия баз данных
- •Создание базы данных
- •Создание таблиц в режиме таблицы
- •Создание таблиц с помощью Мастера
- •Создание таблицы в окне Конструктора
- •Свойства полей
- •Тема 2. Поиск и замена данных Поиск данных
- •Замена данных
- •Сортировка данных
- •Экспорт и импорт таблиц из одной б/д в другую
- •Изменение количества отображаемых столбцов
- •Фиксация столбцов таблицы
- •Тема 3. Фильтрация данных
- •Фильтр по выделенному
- •Команда Изменить фильтр
- •Тема 4. Создание запросов
- •Создание запросов с помощью мастера.
- •Окно Конструктора запросов
- •Встроенные функции
- •Тема 5. Формы
- •Настройка формы
- •Размещение текстовой информации
- •Размещение полей ввода
- •Изменение порядка обхода объекта
- •Создание кнопок управления
- •Добавление рисунка в форму
- •Построение диаграмм
- •Тема 6. Особенности проектирования многотабличных баз данных
- •Проектирование нормализованной базы данных
- •Первая нормальная форма таблицы
- •Вторая нормальная форма
- •Третья нормальная форма таблицы
- •Определение связей между таблицами
- •Связывание двух полей одной таблицы
- •Изменение структуры таблицы в окне Схема данных
- •Определение условий целостности данных
- •Тема 7. Многотабличные запросы
- •Запросы к связанным таблицам с отношением "один-к-одному"
- •Запросы к связанным таблицам с отношением "один-ко-многим"
- •Запросы к связанным таблицам с отношением "многие-ко-многим"
- •Внешние соединения
- •Тема 8. Итоговые запросы
- •Задание условий выборки в итоговых запросах
- •Группировка полей запроса
- •Тема 9. Параметрические запросы
- •Тема 10. Перекрестные запросы
- •Тема 10. Модификация данных с помощью запросов-действий
- •Запрос на удаление
- •Выполнение запроса-обновления
- •Вставка данных из другой таблицы
- •Создание новой таблицы с помощью запроса
- •Тема 11. Создание подчиненной формы. Многостраничные формы
- •1 Способ
- •2 Способ
- •Создание многостраничных форм
- •Тема 12. Расширенные средства ввода данных. Создание подчиненных форм
- •Тема 13. Создание главной кнопочной формы
- •Расположение информации в области данных в 2 колонки
- •Создание почтовых наклеек
- •Тема 14. Создание главной кнопочной формы
- •Использование мастера для создания отчета
- •Кредит 400
- •Создание отчета типа “электронная таблица”
Внешние соединения
До сих пор мы работали с внутренними связями – в выборку включались только те записи из главной таблицы и связанные с ними записи из подчиненных таблиц, значения в связующих полях которых совпадали. Такие запросы устанавливают между таблицами исключающую связь и называется внутренним соединением.
Кроме такого вида соединений существуют запросы, которые устанавливают включающую связь, а соединения между таблицами называется внешним.
При использовании внешних соединений MS Access включает все записи из таблицы, образующей одну сторону отношений, но только совпадающие таблицы, образующие вторую сторону отношений.
Например, нам нужно получить информацию по всем клиентам, не имеющим заказы. Для этого необходимо обеспечить вывод всех клиентов из таблицы Клиенты и соответственно поля Заказано из таблицы Заказы, в том числе и для тех, у кого в данном поле ничего нет, т.к. нет записей в таблице Заказы. Потом можно задать условие в поле Заказано "is Null" определив тем самым, что в запросе нужно отобрать только клиентов не сделавших заказы.
При наличии внутреннего соединения данную операцию выполнить невозможно. Поэтому, необходимо выполнить следующую последовательность действий:
вызвать бланк Запроса и добавить таблицы Заказы и Клиенты
изменить внутреннюю связь на внешнюю, для чего дважды щелкнуть мышью по линии, отражающей связь между двумя списками. При этом появится окно Параметры объединения, содержащие три опции:
объединение только тех записей, в которых связанные поля обеих таблиц совпадают (данный режим устанавливается по умолчанию)
объединение всех записей из "Клиенты" и только тех записей из Заказы, в которых связанные поля совпадают
объединение всех записей из "Заказы" и только тех записей из "Клиенты", в которых связанные поля совпадают.
Если выбранный второй режим, то Линия связи между таблицами изменит свой вид:
-
Клиенты
1
Заказы
Код клиента
Код клиента
Стрелка указывает на таблицу, из которой будут выбранные только совпадающие поля.
Заказы Клиенты |
|||
Поля |
Код клиента |
Фамилия |
Заказано |
Табл |
Клиенты |
Клиенты |
Заказы |
Усл.отб. |
|
|
|
Если просмотреть данный запрос без условия в поле Заказано is Null, то он будет иметь следующий вид:
-
Код клиента
Фамилия
Заказано
126
127
128
129
Иванов
Петров
Сидоров
Печкин
40
60
80
При вводе условия is Null из запроса исключается все строки с не нулевыми полями Заказано (его можно не выводить на экран).
Важно отметить, что поля связь была внутренней, не было разницы, поместить ли в запрос Код клиента из таблицы Клиенты или из таблицы Заказы, т.к. они бы совпадали.
При установлении внешней связи, вытащив поля Код клиента из таблицы Клиенты, вы получите полный список клиентов с их кодами, а вытащив его из таблицы Заказы, получим следующий вид:
-
Код клиента
Фамилия
Заказано
126
127
128
Иванов
Петров
Сидоров
Печкин
40
60
80
Такую же связь можно установить между таблицами Предприятие и Заказы. При этом можно поставить условие показать предприятия, сотрудники которых не делали заказы.