Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекция_N4_сложные_запросы.doc
Скачиваний:
6
Добавлен:
28.07.2019
Размер:
286.72 Кб
Скачать

Добавление списка постоянных значений к полю таблицы

Добавление списка фиксированных значений к полю таблицы очень похоже на создание списка значений внешнего ключа.

Рассмотрим создание списка постоянных значений на примере таблицы «Направление»

  1. Скопировать таблицу.

  2. В диалоговом окне Мастера подстановок выберите переключатель "Фиксированный набор значений".

  3. Во втором диалоговом окне Мастера подстановок введите значение 2 в поле "Число столбцов" и нажмите клавишу <ТаЬ> для создания второго столбца.

  4. Введите значения Р, рок; П, попса; К, классика; Д, джаз в столбцы Столбец 1 и Столбец2 первых четырех строк. Измените ширину столбцов, обеспечив достаточный интервал между ними. Нажмите кнопку "Далее" для вывода третьего окна Мастера подстановок.

  5. В поле "Направление" используется не один символ для обозначения направления музыки, поэтому выберите "Столбец 2" в качестве столбца, содержащего значения, которые необходимо добавить в таблицу. Нажмите кнопку "Далее" для вывода четвертого и последнего окна Мастера подстановок.

  6. Не изменяя предлагаемой Мастером подстановок подписи для списка подстановки, нажмите кнопку "Готово". Выведите новые свойства подстановки. Если необходимо скрыть сокращенное название типа направления, замените первую величину в поле свойства "Ширина столбцов" на 0.

Чтобы скрыть список подстановки у поля, выберите его, раскройте вкладку "Подстановка" и выделите элемент "Поле" в списке "Тип элемента управления".

Внешнее, рекурсивное соединения и соединение по отношению

Внешние соединения позволяют вывести данные всех записей таблицы, участвующей в соединении, вне зависимости от того, имеются ли соответствующие им записи в связанной таблице. Они могут быть левыми или правыми.

Запрос, в котором участвуют таблицы с левым внешним соединением (left join или *= в SQL), выводит все записи таблицы со стороны "один" с уникальным значением первичного ключа вне зависимости от того, имеются ли соответствующие им записи в таблице со стороны "многие". И наоборот, запрос, в котором участвуют таблицы с правым внешним соединением (RIGHT JOIN или =* в SQL), выводит все записи таблицы со стороны "многие" вне зависимости от того, имеются ли соответствующие им записи в таблице со стороны "один". Обычно, но не обязательно, записи таблицы со стороны "многие", которые не подчиняются ни одной записи в таблице со стороны "один", являются "висячими" и могут быть связаны отношением "многие-к-одному" с записями другой таблицы.

Чтобы с помощью левого внешнего соединения создать запрос, который обнаруживает отсутствие записей для некоторого товара в таблице "Заказано" надо:

  1. Создайте новый запрос и добавьте в него таблицы "Товары" и "Заказано".

  2. Перетащите поле «КодТовара» таблицы «Товары» на поле «КодТовара» таблицы «Заказано» для создания внутреннего соединения между ними.

  3. Перетащите поля "Название" и «Цена» таблицы "Товары" и «Количество» и «Скидка» таблицы "Заказано" соответственно в первые четыре столбца бланка запроса.

  4. Выделите линию, соединяющую поля "КодТовара", щелкнув по ней. Выберите команду "Вид, Параметры объединения". Команда активна только тогда, когда имеется выделенное соединение. Кроме того, можно вывести диалоговое окно "Параметры объединения", дважды щелкнув по тонкому отрезку соединения. При двойном щелчке по любому из двух толстых отрезков линий по краям соединительной линии выводится бланк свойств запроса. В диалоговом окне "Параметры объединения" переключатель "1" задает обычное внутреннее соединение, переключатель "2" — левое внешнее соединение и переключатель "3" — правое внешнее соединение. Задайте левое внешнее соединение, выбрав переключатель "2". Нажмите кнопку ОК для закрытия диалогового окна. Обратите внимание, что Access добавляет стрелку на конце линии соединения.