Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
МетБДПос(Лобова)!!.doc
Скачиваний:
2
Добавлен:
01.04.2025
Размер:
4 Мб
Скачать
☆
    1. Вопросы для самопроверки

  1. Какая инструкция SQL соответствует запросу на выборку?

  2. Изменяет ли инструкция select данные в базе?

  3. В каком предложении инструкции SQL указываются таблицы, на которых создается запрос?

  4. В каком предложении инструкции SQL задаются условия отбора записей?

  5. Можно ли для полей, выбираемых в инструкции SQL для вывода, применять функции?

  6. В каком предложении инструкции SQL задаются поля, по которым должна быть выполнена группировка записей запроса?

  1. Многотабличные запросы

    1. Многотабличный запрос

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

Рассмотрим технологию конструирования многотабличного запроса.

Необходимо получить информацию о товарах, запланированных к поставке по всем договорам. Результат должен содержать наименование покупателя, месяц поставки, наименования заказанных товаров и их количество.

Выберем Создание запроса в режиме конструктора.

Сформируем схему данных запроса: В окне Добавление таблицы (см. Рисунок 8.1) выберем взаимосвязанные таблицы:

  • покупатель — для выборки наименования покупателя (поле наим_пок);

  • поставка_план — для выборки месяца поставки (поле срок_пост) и количества товара, запланированного к поставке (поле кол_пост);

  • товар — для выборки наименования товара (поле наим_тов), представленного кодом код_тов в таблице поставка_план.

  • Закроем окно Добавление таблицы.

В окне конструктора запросов будет представлена схема данных запроса, содержащая выбранные таблицы. Между таблицами поставка_план и товар автоматически установлена связь. Таблицы покупатель и поставка_план не имеют полей, по которым их можно было бы связать, поэтому в соответствии с общей схемой данных добавим в схему данных запроса таблицу договор, которая позволит организовать недостающую связь (Рисунок 8.1).

Рисунок 8.1. Окно запроса с созданной схемой данных

Перетащим с помощью мыши поля, включаемые в результат выполнения запроса, в строку бланка запроса Поле: наим_пок — из таблицы покупатель; наим_тов — из таблицы товар; срок_пост и кол_пост — из таблицы поставка_план.

Допустим, необходимо получить информацию о плане поставки конкретных товаров - FDD 3,5. и HDD Maxtor 20GB.

Запишем в разных строках Условие отбора наименования этих товаров, поскольку необходимо выбрать записи со значением в поле наим__тов "fdd 3,5" или "hdd maxtor 20gb". Если марка HDD не известна или безразлична, зададим ее с использованием символа шаблона — звездочка "*". После ввода наименования с символом шаблона система сама вставляет оператор Like, определяющий поиск по образцу. После заполнения бланка запроса он примет вид, представленный на Рисунок 8.2.

Рисунок 8.2. Запрос план поставок товаров FDD 3,5 и HDD

Выполним запрос. Результат выполнения запроса д на рисунке 8.3.

Рисунок 8.3. Результат выполнения запроса о плане поставок FDD 3,5 и HDD