Ознайомлення з основними командами мови sql, що забезпечують маніпулювання даними

ЛАБОРАТОРНА РОБОТА 5

Тема роботи: Огляд команд мови SQL.

Мета роботи: Придбання навичок програмування мовою SQL.

Опис робочого місця: На кожному робочому місці повинен бути комп`ютер з операційною системою Windows.

Теоретичний матеріал:

Запити дають широкі можливості для вибору, сортування і обчислення з використанням даних однієї таблиці. Дуже важливо вміти використовувати дані з пов`язаних таблиць, допомагає будувати багатотабличні запити майстер запитів.

Запит на вибірку можна використовувати не тільки для відбору даних, але і для їх поновлення. Запит на вибірку має ряд властивостей, які можна використовувати для зміни роботи запиту.

В режимі таблиці доступні самі різні операції з даними - огляд, сортування, фільтрація, поновлення і друк. Але достатньо часто приходиться проводити обчислення і огляд даних з декількох таблиць. Відобразити потрібні дані можна за допомогою запитів.

Хід виконання роботи:

Створили у ході виконання лабораторної роботи 18 запитів до наших таблиць. Закінчивши роботу, зберегли файл SK.mdb.

Рис.1.1.Наші створені запити, під час виконання лабораторної роботи.

Приклад : Запит1. Вивести на екран список товарів, поставлених постачальником 1 (НП Іванов И.И.) за договором 1.

Текст SQL : SELECT Договори.Номердоговора, Поставлене.Товар, Поставлене.Кількість, Поставлене.Ценазаединицу, Постачальники.[Назва Постачальника], Постачальники.Кодпоставщика

FROM Постачальники INNER JOIN (Договори INNER JOIN Поставлене ON Договори.Номердоговора = Поставлене.Номердоговора) ON Постачальники.Кодпоставщика = Договори.Кодпоставщика

WHERE (((Договори.Номердоговора)=1));

Приклад : Запит5. Вивести на екран список договорів (номер, дата) і загальну суму за кожним договором (розмір партії помножити на ціну за штуку й просуммировать за договором). Список повинен бути відсортований у порядку зростання загальних сум за кожним договором. Крім того, на список повинне бути накладене умова фільтрації, що складає у виключенні з результату запиту записів, для яких номер договору більше 3.

SQL: SELECT Договори.Номердоговора, Договори.Датадоговора,

Sum([Кількість]*[Ценазаединицу]) AS Сума

FROM Договори INNER JOIN Поставлений ON Договори.Номердоговора =

Поставлено.Номердоговора

GROUP BY Договори.Номердоговора, Договори.Датадоговора

HAVING (((Договори.Номердоговора)>3))

ORDER BY Sum([Кількість]*[Ценазаединицу]);

Рис1.2.Запит5.

Приклад : Запит18. Видалити всі «порожні» договори (тобто ті договори, для яких відсутнього запису про поставлені товари)

SQL: DELETE Договори.Номердоговора

FROM Договори

WHERE (((Договори.Номердоговора) Not In (SELECT Номердоговора FROM Поставлене)));

Приклад : Запит16. Сформувати список товарів, які поставлялися більше 1 рази.

SQL:SELECT Поставлено.Товар, Count(Поставлений.Товар) AS [Count-Товар]

FROM Поставлено

GROUP BY Поставлено.Товар

HAVING (((Поставлено.Товар) In (SELECT Товар FROM Поставлений GROUP BY Товар

HAVING COUNT(Товар)>1)));

Питання до захисту роботи:

Наши рекомендации