- •Мова 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
Приклади запитів
Розглянемо наступну схему даних
1. Вибрати всю інформацію з таблиці Товари
SELECT *
FROM товари;
2. Вибрати список наявних товарів з вказівкою ціни.
SELECT найменування, ціна
FROM товари;
3. Вибрати найменування товарів(без повторень)
SELECT DISTINCT найменування
FROM товари;
4. Вибрати всі товари 2-й категорії
SELECT *
FROM товари
WHERE категория=2;
5. Вибрати інформацію про товари, продані з 1-го жовтня 2002 р.
SELECT *
FROM продажи
WHERE дата_продажи>#10/1/2002#;
6. Вибрати клієнтів, у яких не вказаний телефон.
SELECT прізвище, ім'я, по батькові, місто, підприємство
FROM клієнти
WHERE телефон Is Null;
7. Вибрати товари, ціна яких знаходиться в діапазоні від 10 до 200.
SELECT *
FROM Товари
WHERE Ціна BETWEEN 10 AND 200;
Або
7а. SELECT *
FROM Товари
WHERE Цена>=10 AND Цена<=200;
8. Вибрати клієнтів з Одеси, Києва.
SELECT *
FROM Клієнти
WHERE город='Одесса' OR город='Киев';
9. Вибрати клієнтів з Одеси, Києва, Львова.
SELECT *
FROM Клієнти
WHERE місто IN ('Одесса','Киев','Львов');
10. Вибрати клієнтів, прізвище яких починається на букву А
SELECT *
FROM Клієнти
WHERE ФІО LIKE ‘А *’;
11. Вибрати клієнтів, для яких номер телефону починається з 8067774, а решта 4 цифр невідома.
SELECT *
FROM Клієнти
WHERE Телефон LIKE ‘8067774####’;
Пропозиція order by (сортування результатів)
Пропозиція ORDER BY сортує записи, одержані в результаті запиту, у порядку зростання або убування на основі значень вказаного поля або полів. За умовчанням використовується порядок сортування за збільшенням( від А до Я і від 0 до 9). Для сортування по спаданню ( від Я до А і від 9 до 0) слід додати зарезервоване слово DESC після кожного імені поля, яке потрібно відсортувати в спадаючому порядку. Пропозиція ORDER BY може містити декілька полів. Спочатку записи сортуються по першому полю в списку ORDER BY, потім записи, що мають співпадаючі значення в першому полі сортуються по другому полю і т.д.
12. Відсортувати список товарів за абеткою.
SELECT *
FROM Товари
ORDER BY Найменування;
13. Видати список товарів у порядку спадання ціни.
SELECT *
FROM Товари
ORDER BY 4 DESC;
Тут вказаний номер стовпця сортування.
14. Видати список товарів у порядку зростання категорій, в алфавітному порядку найменувань, по спаданню ціни.
SELECT *
FROM Товари
ORDER BY Категорія, Найменування, Ціна DESC;
Застосування агрегатних функцій в інструкції select
Агрегатна функція Опис
AVG Повертає середнє значення окремого поля
COUNT Повертає кількість записів в таблиці
SUM Повертає суму значень окремого поля
MAX Повертає найбільше значення в специфікованому полі
MIN Повертає найменше значення в специфікованому полі
Агрегатні функції оперують із значеннями в єдиному стовпці таблиці і повертають єдине значення. Функції COUNT, MAX, MIN застосовні як до числових, так і до нечислових полів. Функції SUM, AVG можуть використовуватися тільки у разі числових полів. За винятком COUNT (*), при обчисленні результатів будь-яких функцій спочатку виключаються всі порожні значення, після чого необхідна операція застосовується тільки до конкретних значень стовпця, що залишилися. Варіант COUNT (*) є особливим випадком використання функції COUNT - його призначення полягає в підрахунку всіх рядків в результуючій таблиці, незалежно від того, містяться там порожні, такі, що дублюються або будь-які інші значення.
Якщо до застосування агрегатної функції необхідно виключити значення, що дублюються, слідує перед ім'ям стовпця у визначенні функції помістити ключове слово DISTINCT. Ключове слово DISTINCT не має сенсу для функцій MAX і MIN. Проте його використання може надавати ефект на результати виконання функцій SUM і AVG, тому слід наперед обдумати, чи повинне воно бути присутнім у кожному конкретному випадку, Крім того, ключове слово DISTINCT в кожному запиті може бути вказано не більше одного разу.
Дуже важливо відзначити, що агрегатні функції можуть використовуватися тільки в списку пропозиції SELECT і у складі пропозиції HAVING. У всіх інших випадках використання цих функцій неприпустимо. Якщо список в пропозиції SELECT містить агрегатні функції, а в тексті запиту відсутня фраза GROUP BY, що забезпечує об'єднання даних в групи, то жоден з елементів списку пропозиції SELECT не може включати яких - або посилань на стовпці, за винятком випадку, коли цей стовпець використовується як аргумент агрегатної функції.
