Самоучитель Microsoft Access 2013



Download 16,15 Mb.
Pdf ko'rish
bet49/146
Sana15.11.2022
Hajmi16,15 Mb.
#866071
1   ...   45   46   47   48   49   50   51   52   ...   146
Bog'liq
Юрий Бекаревич, Нина Пушкина - Самоучитель Microsoft Access 2013 (2014)


Глава 4 
19.
В поле, по которому производится группировка или для которого выполняется 
функция. 
20.
Выбрав для запроса в режиме конструктора режим SQL из списка кнопки
Режим
(View) в группе 
Результаты
(Results). 
21.
SELECT

22.
Нет. 
23.
FROM

24.
WHERE

25.
Да. 
26.
GROUP BY

27.
Запятой. 
28.
Да. 
29.
Between

30.
Between #11.01.2012# And #31.03.2013#
31.
Нет. 
32.
Сколько видов товара было заказано. 
33.
Команда 
Итоги
(Totals) на вкладке ленты 
Главная
(Home) в группе 
Записи

Многотабличные запросы на выборку данных 
Многотабличный запрос позволяет сформировать записи результата путем объеди-
нения взаимосвязанных записей из таблиц базы данных и выбора из них нужных 
полей и записей. Многотабличный запрос часто осуществляет объединение дан-
ных, которые на этапе проектирования были разделены на множество таблиц, отве-
чающих требованиям нормализации. В нормализованных таблицах, прежде всего, 
обеспечивалось отсутствие повторяемости описательных данных в базе, там повто-
ряются только значения ключевых полей. В результате выполнения запроса фор-
мируется ненормализованная таблица с повторяющимися данными, в которой каж-
дая запись собирает необходимые данные из разных таблиц.
Например, при объединении двух нормализованных связанных одно-многознач-
ными отношениями таблиц, для которых обеспечивается связная целостность, ре-
зультирующая запись образуется на основе записи подчиненной таблицы, в кото-
рую добавляются поля из связанной записи главной таблицы. Подобное объедине-
ние формирует ненормализованную таблицу, в которой число записей равно числу 
записей в подчиненной таблице. При этом данные главной таблицы дублируются 
в различных записях результирующей таблицы.
При конструировании многотабличного запроса важнейшим условием является 
правильное представление о том, как идет объединение записей таблиц при форми-
ровании результата.


Запросы 
177 
В Access имеются возможности задать способ объединения записей двух связанных 
таблиц как при создании общей схемы базы данных, так и в схеме данных запроса. 
Для любой пары связанных таблиц может быть выбран один из трех способов
объединения записей:
способ 1
— объединение только тех записей, в которых связанные поля обеих 
таблиц совпадают (выбирается по умолчанию); 
способ 2
— объединение тех записей, в которых связанные поля обеих таблиц 
совпадают, а также объединение всех записей из первой таблицы, для которых 
нет связанных во второй, с пустой записью второй таблицы; 
способ 3
— объединение тех записей, в которых связанные поля обеих таблиц 
совпадают, а также объединение всех записей из второй таблицы, для которых 
нет связанных в первой, с пустой записью первой таблицы. 
При установлении связи между таблицами в схеме данных базы по умолчанию вы-
бран первый способ объединения. При обработке таблиц используется этот способ 
объединения, если он специально не переопределен. 
З
АМЕЧАНИЕ 
Если между таблицами в запросе не установлена связь, то для Access остается неиз-
вестным, какие записи связаны с какими, и в запросе формируются все комбинации 
записей таблиц, т. е. объединяются все со всеми. Например, если одна таблица со-
держит 10 записей, а другая 4, то в таблице запроса будет 40 записей (10×4). Такое 
объединение называется "полное объединение", или "декартово произведение". 
Объединение записей в многотабличном запросе 
Задача 
Рассмотрим технологию конструирования многотабличного запроса на выборку 
для решения задачи расчета суммарного количества каждого из товаров, которое 
должно быть поставлено покупателям по договорам. В таблице запроса выведем 
помимо кода товара также и его наименование. Для реализации такого запроса не-
обходимы таблицы ТОВАР и ПОСТАВКА_ПЛАН, находящиеся в отношении 
1 : М. Ранее был создан запрос 
Заказано товаров
(см. рис. 4.11 и 4.12), решающий 
аналогичную задачу, но каждый из товаров был представлен только своим кодом из 
таблицы ПОСТАВКА_ПЛАН. Добавив таблицу ТОВАР, можно для каждого кода 
товара получить его наименование. Прежде чем группировать записи для подсчета 
суммарного количества каждого из товаров, посмотрим, как образуются эти записи 
при объединении двух таблиц. 
1.
Для создания запроса выполните команду 
Конструктор запросов 
(Query 
Design), расположенную на ленте 
Создание
(Create) в группе 
Запросы
.
2.
В окне 
Добавление таблицы 
(Show Table) (см. рис. 4.2) выберите таблицы 
ПОСТАВКА_ПЛАН и ТОВАР и добавьте их в запрос. 
3.
Закройте окно 
Добавление таблицы 
(Show Table). 


178 
Глава 4 
4.
В схеме данных запроса будут представлены таблицы ПОСТАВКА_ПЛАН и 
ТОВАР, между которыми, в соответствии со схемой данных, автоматически
установлена связь 1 : М по полю 
КОД_ТОВ
с обеспечением целостности. 
З
АМЕЧАНИЕ
Если в схеме данных не определена связь между таблицами, но таблицы имеют поля 
с одинаковым именем и одинаковым типом данных, Access может автоматически ус-
тановить эту связь. Связи, которые не были установлены Access автоматически, мо-
жет установить пользователь прямо в схеме данных запроса, перетащив задейство-
ванные в связи поля из списка полей одной таблицы в список полей другой. 
5.
Щелчком мыши выделите линию связи таблиц и нажмите правую кнопку.
В контекстном меню выберите 
Параметры объединения
(Join Properties). В от-
крывшемся окне для связываемых таблиц по умолчанию выбран первый способ 
объединения (рис. 4.22).
Рис. 4.22. 
Окно выбора способа объединения связываемых таблиц 
6.
Перетащите в бланк запроса из таблицы ПОСТАВКА_ПЛАН поле 
КОД_ТОВ
и 
КОЛ_ПОСТ
, а из таблицы ТОВАР — поле 
НАИМ_ТОВ

З
АМЕЧАНИЕ
В ряде случаев в бланке запроса наряду с именем поля нужно отображать имя соот-
ветствующей таблицы, например, когда поля имеют одинаковые имена в разных таб-
лицах. Для того чтобы в бланке запроса, наряду с именем поля, видеть имя таблицы, 
выполните команду 
Имена таблиц 
(Table Names)
на ленте конструктора в группе 
Показать или скрыть
(Show/Hide).
7.
Выполните запрос, щелкнув на кнопке 
Выполнить
(Run) или 
Режим 
(View) на 
ленте конструктора запросов в группе 
Результаты
(Results). Число записей
в таблице запроса будет равно числу записей в подчиненной таблице 
ПОСТАВКА_ПЛАН.
8.
Если для связи таблиц не было задано параметра обеспечения целостности дан-
ных, в таблицу ПОСТАВКА_ПЛАН можно было бы включить записи с кодами 
товара, не содержащимися в таблице ТОВАР. Но такие записи не были бы 
включены в таблицу запроса, т. к. первый способ объединения требует наличия


Запросы 
179 
связанных записей в таблице ТОВАР. Таким образом, по ряду товаров необхо-
димые сведения были бы потеряны. 
9.
Снова откройте для связи таблиц окно 
Параметры объединения
(Join 
Properties) (см. рис. 4.22) и выберите второй способ объединения записей. 
Обратите внимание — на линии связи появилась стрелка, направленная от 
таблицы ТОВАР к таблице ПОСТАВКА_ПЛАН (рис. 4.23). Она указывает на 
необходимость включения в таблицу запроса и тех записей из таблицы ТОВАР, 
для которых нет связанных в таблице ПОСТАВКА_ПЛАН. 
Рис. 4.23. 
Схема данных запроса
при объединении таблиц вторым способом 
Рис. 4.24. 
Результат объединения таблиц ТОВАР
и ПОСТАВКА_ПЛАН вторым способом
10.
Выполните запрос. При объединении таблиц вторым способом к записям, по-
лученным первым способом, добавились записи из таблицы ТОВАР, не имею-
щие связанных записей в таблице ПОСТАВКА_ПЛАН. Каждая такая запись 
дополнена полями 
Количество
и 
Код товара
из таблицы ПОСТАВКА_ 
ПЛАН, которые содержат значения
Null
. Такая ситуация возникает вследствие 
того, что в плане отсутствуют заказы на ряд товаров. На рис. 4.24 показаны три 
записи с пустыми значениями в полях с количеством и кодом товара. 
О
БРАТИТЕ ВНИМАНИЕ
Null
— это константа, которая означает, что поле не содержит данных. Поле получает 
значение 
Null
, когда неизвестно его содержимое. Такое поле не следует путать с по-
лем, содержащим пустую строку, хотя выглядят они одинаково. Значение 
Null
можно 
ввести в поле или использовать в выражениях и запросах для указания отсутствую-
щих или неизвестных данных. Пустая строка служит для указания того, что строковое 
значение для этого поля отсутствует. Для ввода пустой строки с клавиатуры следует 
ввести два символа прямых кавычек без пробела (
""
). 


180 
Download 16,15 Mb.

Do'stlaringiz bilan baham:
1   ...   45   46   47   48   49   50   51   52   ...   146




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©hozir.org 2024
ma'muriyatiga murojaat qiling

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish