Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Учебное пособие БД_практикум Access.doc
Скачиваний:
37
Добавлен:
16.03.2015
Размер:
7.34 Mб
Скачать

3.3 Учебные кейсы. Создание запросов к бд «Фирма» с использованием языка sql

Кейс-ситуация: Вы – менеджер торговой фирмы (иллюстративный учебный кейс 6). Оперативная работа с БД «Фирма» ставит перед Вами задачи выборки различных данных из таблиц. Для создания запросов наиболее рационально использовать язык SQL.

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

1. Создание простых запросов

  1. Напишите команду SELECT, которая выводит только код заказа, сумму и дату размещения заказа для всех строк из таблицы Заказы.

  2. Напишите запрос, который выводит все строки из таблицы Клиенты, для которых код сотрудника равен 1001.

  3. Напишите запрос, который выводит таблицу Сотрудники со столбцами фамилия сотрудника, имя, адрес и телефон.

  4. Напишите команду SELECT, которая выводит факс, сопровождаемый названием компании каждого клиента в Кемерово.

  5. Напишите запрос, который выводит значения кодов клиентов всех сотрудников из таблицы Заказы без повторений.

  6. Напишите запрос, который выводит все заказы со значениями суммы заказа выше, чем 7000.

  7. Напишите запрос, который выводит поля фамилия и адрес для всех сотрудников в Кемерово с должностью менеджер.

  8. Напишите запрос к таблице Клиенты, который выводит всех клиентов с формой предприятия ООО, если они не находятся в Кемерово.

  9. Напишите запрос к таблице Сотрудники, который выводит данные о сотрудниках с фамилией, на букву «К».

  10. Что может быть выведено в результате следующего запроса? SELECT * FROM Заказы WHERE (сумма < 6000 OR NOT дата размещения > 16/12/2009 AND код клиента > 2003 );

  11. Как можно проще переписать такой запрос? SELECT код сотрудника, сумма FROM Заказы WHERE ( сумма >0.12 and сумма < 0.1);

  12. Напишите запрос, который выводит все заказы на 10 или 18 ноября 2009, для которых сумма превышала бы 7000.

  13. Напишите запрос, который выберет все заказы, обслуживаемые сотрудниками Кроль или Сенченко. (Подсказка: нужно связать две таблицы Сотрудники и Заказы )

  14. Напишите запрос, который выводит всех клиентов, электронные адреса которых начинаются с букв, попадающих в диапазон от «a» и до «k» и которые живут в городах Кемерово, Мыски, Белово.

2. Получение обобщенных данных для формирования отчетов и создание запросов с данными из нескольких таблиц и подзапросами

  1. Напишите запрос, который вычисляет все суммы заказов на 10 ноября.

  2. Напишите запрос, который выбирает наименьшую сумму заказа для каждого клиента.

  3. Напишите запрос, который выводит данные о клиентах, названия компаний которых начинаются с буквы «К». Вывод упорядочить по возрастанию дат.

  4. Напишите запрос, который вычисляет число клиентов, регистрирующих свои заказы, для каждого дня.

  5. Напишите запрос, который формирует отчет со следующими данными: код сотрудника, фамилия, имя, отчество, сумма комиссионных, полученная этим сотрудником при оформлении всех заказов (заголовки столбцов должны отражать их содержимое)

  6. Напишите запрос к таблице Заказы, который находит наибольшую сумму приобретений на каждую дату размещения заказа. Вывод должен иметь вид: для даты (дата размещения), наибольшая сумма - : (сумма).

  7. Напишите запрос, который выводит список сотрудников в алфавитном порядке (по фамилии). Вывод поля фамилии должен сопровождаться именем сотрудника и его адресом электронной почты.

  8. Напишите запрос, который выводит сумму заказа на каждый день (дата исполнения) и размещает результаты в порядке убывания даты.

  9. Напишите запрос, который выводит список кодов заказов, сопровождающихся фамилией сотрудника, который оформлял эти заказы.

  10. Напишите запрос, который формирует вывод со следующими данными: код заказа, фамилия, имя сотрудника и название компании клиента для каждого заказа.

  11. Напишите запрос, который выводит всех клиентов, обслуживаемых сотрудниками с комиссионными выше 11%. Выведите название компании, фамилия сотрудника и комиссию сотрудника.

  12. Напишите запрос, который вычисляет сумму комиссионных сотрудника для каждого заказа.

  13. Напишите запрос, который выводит все пары сотрудников, живущих в одном и том же городе. Исключите комбинации сотрудников с ними же, а также дубликаты строк, выводимых в обратным порядке.

  14. Напишите запрос, который выводит все пары заказов по данным клиентам, название компании, и исключал дубликаты из вывода, как в предыдущем вопросе.

  15. Напишите запрос, который использует подзапрос для получения всех заказов для клиента с названием компании «ООО ВИТА». Предположим, что код этого клиента неизвестен.

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