
SQL - це мова структурованих запитів ; це всеосяжна або декларативна мова бази даних, яка використовується для доступу до даних з баз даних.
Діаграма порівняння
Основа для порівняння | WHERE | ВІД |
---|---|---|
Основний | Реалізовано в ряду операцій. | Реалізовано в операціях стовпців. |
Застосовується до | Один рядок | Узагальнені рядки або групи. |
Отримання даних | Він вибирає конкретні дані з окремих рядків відповідно до умови. | По-перше, повні дані отримують, потім розділяють відповідно до умови. |
Сукупні функції | Неможливо відобразитися в розділі WHERE. | Можуть з'являтися у статті HAVING. |
Використовується з | SELECT та інші оператори, такі як UPDATE, DELETE або будь-який з них. | Не можна використовувати без оператора SELECT. |
Діє як | Попередній фільтр | Пост-фільтр |
GROUP BY | Приходить після WHERE. | Приходить після того, як. |
Визначення пункту Де
Вираз SQL WHERE використовується для опису стану під час вилучення даних з однієї таблиці або шляхом об'єднання з декількома таблицями. Вона повертає тільки конкретне значення з таблиці, якщо задана умова виконана. WHERE використовується для проникнення записів і вилучення тільки необхідних записів.
SQL також реалізує логічні зв'язки і, або, а не в пропозиції WHERE, які також відомі як булеві умови; умова повинна бути істинною для отримання кортежів. Операнди виразів логічних з'єднань включають оператори порівняння, такі як <, <=, >, > =, =, і . Ці оператори порівняння порівнюють рядки та арифметичні вирази. Його можна використовувати в операторі SELECT, а також у операторах UPDATE, DELETE .
Приведемо приклад. Таблиця, наведена нижче як таблиця " Продажі ", складається з атрибутів " Продукт " і "Кількість продажів ".

SELECT Продукт, сума (Sales_amount) AS Total_sales FROM Sales WHERE Продукт у ('Телефон', 'Динаміки') GROUP BY Продукт;

Визначення пункту
SQL надає пропозицію HAVING, яка може використовуватися спільно з пунктом GROUP BY . Це пропозиція HAVING допомагає отримати значення для груп, які відповідають певним умовам. Вимоги WHERE також можна використовувати в поєднанні з пунктом HAVING під час вибору, пропозиція WHERE фільтрує окремий рядок. Потім рядки групуються, і виконуються сукупні обчислення, останнє слово HAVING фільтрує групи.
Він веде себе так само, як і WHERE, якщо ключове слово GROUP BY не використовується. Групові функції, такі як min, max, avg, sum та count можуть з'являтися лише у двох пунктах: SELECT та HAVING. Вона забезпечує умову на кортежах, що відповідають кожному значенню в групі атрибутів. Єдиний набір записів, що задовольняє умові, буде показаний як результат.
Тут також ми беремо той самий приклад, як WHERE і розглядаючи ту саму таблицю ' Sales '. Коли ми хочемо розрахувати Total_sales телефону та динаміків за допомогою пункту HAVING, ми напишемо наступний запит.
SELECT Продукт, сума (Sales_amount) AS Total_sales FROM Продаж GROUP BY Product HAVING Продукт у ('phone', 'Speakers');
Запит виробляє наступний висновок, де продукти спочатку витягуються, потім виконується сукупна функція (сума), а останні групи фільтруються на відміну від статті WHERE.

Коли ми хочемо знайти тільки ті продукти, у яких сума всього перевищує 1000. Запит можна записати так:
SELECT Продукт, сума (Sales_amount) AS Total_sales FROM Sales GROUP За продуктом, що має суму (Sales_amount)> 1000;
Вироблений вихід:

Це не може бути виконано за допомогою пропозиції WHERE, незважаючи на HAVING, і він генерує повідомлення про помилку, оскільки пропозиція WHERE не може бути використана з сукупними функціями.
Основні відмінності між пунктом де і з яким має місце
- Застереження WHERE використовується в операціях рядків і застосовується до однієї рядки, тоді як пропозиція HAVING використовується в операціях стовпців і може застосовуватися до узагальнених рядків або груп.
- У розділі WHERE потрібні дані вибираються відповідно до застосованого стану. Навпаки, стаття HAVING отримує цілі дані, тоді поділ виконується відповідно до умови.
- Агреговані функції, такі як min, sum, max, avg, ніколи не можуть з'являтися разом з пропозицією WHERE. На відміну від цього, ці функції можуть з'являтися в статті HAVING.
- Вираз HAVING не можна використовувати без оператора SELECT. І навпаки, WHERE можна використовувати з SELECT, UPDATE, DELETE тощо.
- Розділ WHERE веде себе як попередній фільтр, тоді як пропозиція HAVING діє як пост-фільтр.
- Якщо WHERE використовується з GROUP BY, пропозиція WHERE приходить до GROUP BY. Це означає, що WHERE фільтрує рядки, перш ніж виконувати агреговані обчислення. З іншого боку, HAVING приходить після GROUP BY, що означає, що він фільтрується після виконання сукупних обчислень.
Висновок
Застосунок WHERE і HAVING працює таким же чином, за винятком додаткової функції, для якої популярна пропозиція HAVING. Розділ HAVING може ефективно працювати з агрегатними функціями, тоді як WHERE не може працювати з агрегатними функціями.