- •Мова sql
- •Компоненти sql
- •Insert Використовується для пакетного завантаження в базу
- •Пропозиції sql
- •Операції sql
- •Приклади запитів
- •Пропозиція order by (сортування результатів)
- •Застосування агрегатних функцій в інструкції select
- •15. Знайти максимальну і мінімальну кількість проданих товарів за одну покупку.
- •Пропозиція group by
- •Пропозиція having
- •18. Вибрати тих клієнтів загальна кількість покупок яких більше 20.
- •Пропозиція parameters (використання параметрів в запитах)
- •Вибірка даних з декількох таблиць
- •Пропозиція inner join (внутрішнє з'єднання)
- •Підпорядковані запити
- •Інструкція insert into
- •Інструкція select...Into
- •Інструкція update
- •Інструкція delete
- •Інструкція alter table
- •Інструкція create index
- •Інструкція drop
15. Знайти максимальну і мінімальну кількість проданих товарів за одну покупку.
SELECT MAX(Продано) AS [Максимум], MIN(Продано) AS [Мінімум]
FROM Продажи;
Пропозиція group by
Запит з пропозицією називається груповим запитом; у ньому групуються дані, одержані в результаті виконання інструкції SELECT. При використанні в інструкції SELECT пропозиції GROUP BY кожен елемент списку в пропозиції SELECT повинен мати єдине значення для всієї групи. Всі імена стовпців, приведені в списку пропозиції SELECT, повинні бути присутніми і в пропозиції GROUP BY - за винятком випадку, коли ім'я стовпця використовується в агрегатній функції. У пропозиції GROUP BY не можна замість імен полів використовувати порядковий номер в списку SELECT.
16. Підрахувати кількість покупок, зроблених кожним з клієнтів.
SELECT Код_клиента, SUM(Продано) AS [кількість покупок]
FROM Продажи
GROUP BY Код_клиента;
17. Вибрати клієнтів, які зробили за один раз більше 10 покупок і упорядкувати результат у порядку спадання кількості покупок.
SELECT Код_клиента, SUM(Продано) AS [Kількість покупок]
FROM Продажи
WHERE Продано>10
GROUP BY Код_клиента
ORDER BY 2 DESC;
Пропозиція having
Визначає, які згруповані записи відображаються при використанні інструкції SELECT з пропозицією GROUP BY. Після того, як запису будуть згруповані за допомогою пропозиції GROUP BY, пропозиція HAVING відбере ті з одержаних записів, які задовольняють умовам відбору, вказаним в пропозиції HAVING.
Пропозиція HAVING є необов'язковою.
Пропозиція HAVING схоже на пропозицію WHERE, яка визначає, які записи повинні бути відібрані. Після того, як запису будуть згруповані за допомогою пропозиції GROUP BY, пропозиція HAVING указує, які з одержаних записів повинні бути відібрані:
Пропозиція HAVING може містити до 40 виразів, зв'язаних логічними операторами, такими як And і Or.
18. Вибрати тих клієнтів загальна кількість покупок яких більше 20.
SELECT Код_клиента, SUM(Продано) AS [Kількість покупок]
FROM Продажи
GROUP BY Код_клиента
HAVING SUM(Продано)>20
ORDER BY 2 DESC;
Пропозиція parameters (використання параметрів в запитах)
Підвищує гнучкість запитів, забезпечує можливість запрошувати у користувача чисельні значення критеріїв відбору даних. Розташовується перед інструкцією SQL і визначає тип даних параметрів.
Формат запису:
PARAMETERS [Ім'я параметра] тип даних;
Допустимі типи даних в Jet SQL
Bit Логічний
Byte Байт
Currency Грошовий
DateTime Дата/час
Long Довге ціле
Short Ціле
Float З плаваючою крапкою(8 байт)
Real З плаваючою крапкою(4 байти)
Text Текстовий
20. Видати всю інформацію про заданого клієнта, знаючи його код.
PARAMETERS [введи код_клиента] Long;
SELECT *
FROM Клієнти
WHERE Код_клиента=[введи код_клиента];
Вибірка даних з декількох таблиць
При цьому виконується операція з'єднання таблиць. З'єднання по рівності проводиться по загальному для декількох таблиць полю (як правило, одне їх їх ключове).
21. Вибрати прізвища, імена клієнтів і кількість проданих товарів для них з вказівкою дати продажу.
SELECT Прізвище, Ім'я, Продано, Дата_продажи
FROM Клієнти, Продажи
WHERE Клієнти.Код_клиента=Продажи,код_клиента;
22. Вибрати прізвища клієнтів, найменування товарів, кількість проданих товарів, дату продажу.
SELECT Прізвище, Найменування, Продано, Дата_продажи
FROM Клієнти, Товари, Продажи
WHERE (Клієнти.Код_клиента=Продажи,код_клиента)
AND (Товари.Код_товара=Продажи,Код_товара);
23. Вибрати прізвища клієнтів, найменування товару і загальну кількість покупок цих товарів.
SELECT Прізвище, Найменування, SUM(Продано) AS [Кількість покупок]
FROM Клієнти, Товари, Продажи
WHERE (Клієнти.Код_клиента=Продажи,код_клиента)
AND (Товари.Код_товара=Продажи,Код_товара)
GROUP BY Прізвище, Найменування;
