Продовжуємо вивчати MySQL-запити. Це друга частина серії статей для початківців за запитами MySQL. Тут будуть представлені приклади використання команд, функцій і виразів, таких як IN, NOT IN, AS, COUNT, CONCAT, GROUP BY і HAVING.
WHERE - застосування IN і NOT IN
Використання IN - вибираємо клієнтів з таблиці clients. у яких вік дорівнює 30, 40 або 50 років (наприклад, якщо ви хочете перевірити, у кого з них ювілей):
Використання NOT IN - наприклад вибираємо всіх клієнтів з таблиці clients. НЕ проживають в Росії, Білорусі, Україні:
Можна використовувати ще і вкладені запити - тут показаний приклад, коли потрібно вибрати всіх клієнтів з таблиці clients. які проживають в країнах, що входять в СНД:
Зауважте, що у вкладеному запиті використовується вже інша таблиця бази даних - regions.
Для умов IN і NOT IN повинні використовуватися тільки значення стовпців таблиць (або просто якісь конкретні значення), але ніяк не імена стовпців!
CONCAT - склеювання (конкатенація) значень в один рядок
Функція CONCAT нерідко застосовується в команді SELECT. і з її допомогою можна отримати один рядок з декількох значень, або зі звичайних текстових рядків, або отриманих з значень стовпців, або комбінуючи обидва варіанти. Ось кілька MySQL-запитів для прикладу:
цей запит нам поверне приблизно такі рядки:
цей MySQL-запит поверне нам такий рядок:
Однак при використанні функції CONCAT слід пам'ятати, що якщо в її параметрах потрапить хоча б одне значення NULL. то функція поверне тільки NULL (тобто нічого), причому незалежно від того, яким по порядку був параметр, що дорівнює значенню NULL. Наступний запит поверне значення NULL. а не рядок:
І ще, числові параметри, що передаються функції CONCAT без лапок автоматично перетворюються в рядки:
ці запити повернуть строкові значення «1005009» і «5.99» відповідно.
Використання функції COUNT ()
Функція COUNT () використовується для підрахунку кількості записів в таблиці бази даних. Наприклад, щоб дізнатися кількість всіх рядків з таблиці clients. досить виконати такий запит:
Застосування функції COUNT () спільно з командою групування GROUP BY
У цьому прикладі ми застосуємо угруповання записів по країнам за допомогою команди GROUP BY. щоб отримати з таблиці clients кількість клієнтів в кожній країні:
Результат буде приблизно таким:
Спільно з командою GROUP BY можна застосовувати не тільки функцію COUNT (*). але і інші схожі за призначенням функції. Наприклад наступний SQL-запит підрахує середній вік клієнтів, згрупований по підлозі:
Результат отримаємо приблизно такий:
Використання виразу HAVING разом з GROUP BY
Вираз HAVING використовується для визначення умови, вирішального які рядки будуть виводитися в результат запиту, а які ні. Як приклад, наступний SQL-запит видасть нам кількість клієнтів в кожній країні, але тільки в тих країнах, де кількість клієнтів більше 10:
Майте на увазі, що вираз HAVING повинне бути розташоване тільки після всіх виразів GROUP BY, але ні в якому разі не повинно використовуватися замість WHERE.
Визначення псевдонімів, використовуючи «AS»
Імена стовпців таблиць бази даних можна замінювати власними псевдонімами, використовуючи для цього ключове слово AS і придумане вами власне ім'я. Ось приклад застосування псевдонімів і ключового слова AS:
В результаті запиту ми отримаємо такі заголовки стовпців:
Використання псевдонімів застосовується дуже часто, наприклад, щоб скоротити довжину рядка запиту, замінити в результатах запиту імена стовпців на більш зручні для читання і т.д.
-
На цьому друга частина огляду SQL запитів для новачків завершується. Далі буде.
Інші статті з цієї серії:
Перша частина
Третя частина
Четверта частина