У сьогоднішньому уроці ми розглянемо на практиці те, як використовувати умову 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 для фільтрації рядків результатів за необхідними критеріями.