Ознайомлення з основними командами мови 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)));
Питання до захисту роботи: