Создание запросов в СУБД MsAccess

СПбГУАП

Кафедра 43

 

 

Отчет защищен:

Преподаватель: Соловьева Н.А.

 

 

Отчет по лабораторной работе №7 по курсу

“Информационные технологии в экономике”

«Создание запросов

в СУБД MsAccess»

 

Работу выполнила

Студентка гр.4538: Бонифатова Елена

 

-2007-

«Создание запросов

в СУБД MsAccess»

по курсу «Информационные технологии в экономике»

 

Цель работы: изучить возможности построения запросов на выборку в конструкторе и в окне редактора SQL; научиться формулировать и реализовывать запросы.

 

Задание

 

Для своей базы данных, подготовленной во время выполнения предыдущих лабораторных работ, сформулировать и реализовать запросы следующих типов (по одному запросу на каждый тип):

 

  1. выборка данных из нескольких таблиц
  2. выборка данных с двумя условиями
  3. перекрестный запрос
  4. запрос с параметром
  5. запрос на обновление
  6. запрос на добавление
  7. запрос на удаление
  8. запрос с объединением

9. запрос на создание таблицы

 

 

Выполнение задания.

 

Выборка данных из нескольких таблиц

Вывести наименование товара, количество, регистрационный номер и название производителя по возрастанию стоимости за единицу товара.

 

Исходная заполненная таблица.

 

Текст на SQL:

SELECT заказ.[номер заказа], клиент.[фамилия клиента], клиент.[имя клиента], клиент.[отчество клиента], заказ.[выполнен не выполнен]

FROM клиент INNER JOIN заказ ON клиент.[ИНН клиента] = заказ.[ИНН клиента]

WHERE (((заказ.[номер заказа])>10))

ORDER BY заказ.[номер заказа];

 

Результат запроса.

 

 

 

Выборка данных с двумя условиями

Вывести дату выполнения и условие «выполнен/не выполнен» для заказов, исполнителем которых является Худоногов Петр Леонидович, а дата поступления 12.05.2007.

 

Исходная заполненная таблица.

 

 

Текст на SQL:

SELECT заказ.[ФИО исполнителя заказа], заказ.[дата поступления заказа], заказ.[дата выполнения заказа], заказ.[номер заказа], заказ.[выполнен не выполнен]

FROM заказ

WHERE (((заказ.[ФИО исполнителя заказа])="Худоногов Петр Леонидович") AND ((заказ.[дата поступления заказа])=#5/12/2007#));

 

Результат запроса.

 

 

Запрос с параметром

Вывести ФИО заказчика, ФИО исполнителя заказа, дату поступления и дату выполнения заказа по номеру заказа. Параметр- номер заказа.

 

Исходная заполненная таблица.

 

Текст на SQL:

SELECT заказ.[номер заказа], заказ.[дата поступления заказа], заказ.[дата выполнения заказа], заказ.[ФИО исполнителя заказа], заказ.[ФИО заказчика]

FROM заказ

WHERE (((заказ.[номер заказа])=[введите номер заказа]));

 

Результат запроса.

 

 

 

Запрос на обновление

Снизить цены на товары, количество которых в заказах равно 22, на 20%.

 

Исходная заполненная таблица.

 

 

 

Текст на SQL:

UPDATE товар SET товар.[стоимость за единицу товара] = товар.[стоимость за единицу товара]*0.8

WHERE (товар.количество)=22;

 

Результат запроса.

 

 

Запрос с объединением

Вывести названия всех городов, с которыми есть контакты (города со складами и города с клиентами).

 

Исходные заполненные таблицы.

 

 

 

 

 

Текст на SQL:

 

SELECT город

FROM клиент

UNION SELECT город

FROM [склад товаров];

 

Результат запроса.

 

 

Запрос на удаление

 

Удалить все товары, количество которых в заказе равно22.

 

Исходная заполненная таблица.

 

 

 

Текст на SQL:

DELETE товар.*, товар.количество

FROM товар

WHERE (((товар.количество)=22));

 

Результат запроса.

 

 

Запрос на добавление

Добавить в таблицу VIP-клиент фамилию, имя и отчество, номер банковского счета и ИНН клиентов из Москвы.

 

 

Исходная заполненная таблица.

 

клиент

 

VIP-клиент

 

 

Текст на SQL:

INSERT INTO [VIP-клиент] ( [фамилия клиента], [имя клиента], [номер банковского счета], город, [ИНН VIP-клиента] )

SELECT клиент.[фамилия клиента], клиент.[имя клиента], клиент.[номер банковского счета], клиент.город, клиент.[ИНН клиента]

FROM клиент

WHERE (((клиент.город)="Москва"));

 

 

Результат запроса.

 

 

 

Перекрестный запрос

Создать перекрестный запрос, который будет показывать, сколько заказов и для каких клиентов выполнил каждый исполнитель заказов.

 

Исходная заполненная таблица.

 

Текст на SQL:

TRANSFORM Count(заказ.[выполнен не выполнен]) AS [Count-выполнен не выполнен]

SELECT заказ.[ФИО заказчика], Count(заказ.[выполнен не выполнен]) AS [Итоговое значение выполнен не выполнен]

FROM заказ

GROUP BY заказ.[ФИО заказчика]

PIVOT заказ.[ФИО исполнителя заказа];

 

Результат запроса.

 

Запрос на создание таблицы

 

Создать таблицу «клиенты Северной Столицы», содержащую данные (фамилия, имя, отчество) о клиентах из Санкт-Петербурга.

 

Исходная заполненная таблица.

 

 

Текст на SQL:

SELECT клиент.[фамилия клиента], клиент.[имя клиента], клиент.[отчество клиента], клиент.город

INTO [клиенты Северной Столицы]

FROM клиент

WHERE (((клиент.город)="Санкт-Петербург"));

 

 

Результат запроса.