Ознайомлення з оператором WHERE в MySQL
У сьогоднішньому уроці ми розглянемо на практиці те, як використовувати умову WHERE в операторі SELECT для фільтрації рядків з набору результатів в MySQL.
Основи використання умови WHERE в MySQL
Умова WHERE дозволяє задати умову пошуку для рядків, які повертаються в запиті. Нижче показаний синтаксис умови WHERE:
SELECT select_query FROM table_name WHERE condition;
Умова condition – це комбінація одного або декількох тверджень, які використовують логічний оператор AND, OR і NOT.
В MySQL твердження (предикат) – це логічний вираз, який оцінюється як TRUE, FALSE або UNKNOWN.
Будь-який рядок з table_name, який призводить до того, що condition оцінюється як TRUE, буде включений в остаточний набір результатів.
Крім оператора SELECT, ви можете використовувати умову WHERE в операторі UPDATE або DELETE, щоб вказати, які рядки потрібно оновити або видалити.
В операторі SELECT умова WHERE оцінюється після умови FROM і перед умовою SELECT.
Приклади умови WHERE в MySQL
Приклад №1: Використання умови WHERE з оператором рівності
У наступному запиті використовується умова WHERE для пошуку всіх співробітників, назви посад яких є Менеджер:
SELECT lastname, firstname, posada FROM spivrobitniki WHERE posada = 'Менеджер';
У цьому прикладі інструкція SELECT перевіряє всі рядки таблиці співробітників і вибирає тільки рядок, значення якого в стовпці posada дорівнює Менеджер.
Приклад №2: Використання умови WHERE з оператором AND
У наступному прикладі використовується умова WHERE для пошуку співробітників, назви посад яких є Менеджер, а службові коди рівні 1:
SELECT lastname, firstname, posada, officeKod FROM spivrobitniki WHERE posada = 'Менеджер' AND officeKod = 1;
У цьому прикладі вираз у реченні WHERE використовує оператор AND для об’єднання двох умов:
posada = 'Менеджер' AND officeKod = 1;
Оператор AND оцінюється як ІСТИНА (TRUE), тільки якщо обидва вирази мають значення TRUE. Тому запит повертає рядки, значення яких в стовпці posada рівні Менеджер, а officeKod дорівнює 1.
Приклад №3: Використання умови WHERE з оператором OR
Цей запит знаходить співробітників, назва посади яких є Менеджер, або співробітників, які мають офісний код 1:
SELECT lastName, firstName, posada, officeKod FROM spivrobitniki WHERE posada = 'Менеджер' OR officeKod = 1;
Оператор OR оцінюється як ІСТИНА, тільки якщо один з виразів має значення TRUE:
posada = 'Менеджер' OR officeKod = 1
Таким чином, запит повертає будь-якого співробітника, у якого посада є Менеджер або офісний код 1.
Приклад №4: Використання WHERE з оператором BETWEEN
Оператор BETWEEN повертає TRUE, якщо значення знаходиться в діапазоні значень:
expression BETWEEN low AND high
Наступний запит знаходить співробітників, які знаходяться в офісах з офісним кодом від 1 до 3:
SELECT firstName, lastName, officeKod FROM spivrobitniki WHERE officeKod BETWEEN 1 AND 3 ORDER BY officeKod;
Приклад №5: Використання WHERE з оператором LIKE
Оператор LIKE оцінюється як ІСТИНА, якщо значення відповідає вказаному шаблону. Щоб сформувати шаблон, ви використовуєте % і _ знаки підстановки. Знак підстановки % відповідає будь-якому рядку, що складається з нуля або більше символів, а знак підстановки _ відповідає будь-якому окремому символу.
Цей запит знаходить співробітників, чиї прізвища закінчуються рядком «ко»:
SELECT firstName, lastName FROM spivrobitniki WHERE lastName LIKE '%ко';
Приклад №6: Використання умови WHERE з оператором IN
Оператор IN повертає TRUE, якщо значення відповідає будь-якому значенню в списку.
value IN (value1, value2, ...)
У наступному прикладі використовується умова WHERE з оператором IN для пошуку співробітників, які знаходяться в офісі з офісними кодами 1, 2 або 3.
SELECT firstName, lastName, officeKod FROM spivrobitniki WHERE officeKod IN (1, 2, 3);
Приклад №7: Використання умови WHERE з оператором IS NULL
Щоб перевірити, чи є значення NULL чи ні, ви використовуєте оператор IS NULL, а не оператор рівності (=). Оператор IS NULL повертає TRUE, якщо значення дорівнює NULL.
value IS NULL
У світі баз даних NULL – це маркер, який вказує, що частина інформації відсутня або невідома. Це не еквівалентно числу 0 або порожньому рядку.
Цей оператор використовує умову WHERE з оператором IS NULL, щоб отримати рядок, значення якого в стовпці officeKod дорівнює NULL:
SELECT lastName, firstName, officeKod FROM spivrobitniki WHERE officeKod IS NULL;
З сьогоднішнього уроку ви дізналися, як на практиці використовувати умову WHERE в MySQL для фільтрації рядків результатів за необхідними критеріями.