Руководство по SQL. Связывающие условные операторы AND/OR.

Мы используем условные операторы AND/OR для комбинирования нескольких условий с целью получения более конкретной выборки данных. Данные операторы также называют связывающими.


Оператор AND

Оператор AND позволяет нам использовать несколько условий при запросах с использованием WHERE. В результате мы получаем только те записи, которые соответствуют всем указанным условиям.

Общий вид такого запроса имеет следующий вид:


SELECT колонка1, колонка2, колонкаN 
FROM имя_таблицы
WHERE [условие1] AND [условие2]... AND [условиеN];

Пример:
Предположим, что у нас есть таблица developers, которая содержит следующие данные:


+----+-------------------+------------+------------+--------+
| ID | NAME              | SPECIALTY  | EXPERIENCE | SALARY |
+----+-------------------+------------+------------+--------+
|  1 | Eugene Suleimanov | Java       |          2 |   2000 |
|  2 | Peter Romanenko   | Java       |          3 |   3500 |
|  3 | Andrei Komarov    | JavaScript |          2 |   2100 |
|  4 | Konstantin Geiko  | C#         |          2 |   2000 |
|  5 | Asya Suleimanova  | UI/UX      |          2 |   1800 |
+----+-------------------+------------+------------+--------+

Допустим, нам необходимо получить всех Java разработчиков с зарплатой более 3000.
Для этого мы должны составить следующий запрос:


mysql> SELECT * FROM developers WHERE SPECIALTY LIKE 'java' AND SALARY > 3000;

В результате мы получим следующее:


+----+-----------------+-----------+------------+--------+
| ID | NAME            | SPECIALTY | EXPERIENCE | SALARY |
+----+-----------------+-----------+------------+--------+
|  2 | Peter Romanenko | Java      |          3 |   3500 |
+----+-----------------+-----------+------------+--------+
1 row in set (0.01 sec)

Оператор OR

Мы используем оператор OR для комбинирования нескольких условий в запросах, которые используют WHERE. В результате выполнения такого запроса мы получаем результаты, которые соответствуют хотя бы одному из указанных условий.

Общий вид таких запросов выглядит следующим образом:


SELECT колонка1, колонка2, колонкаN 
FROM имя_таблицы
WHERE [условие1] OR [условие2]... OR [условиеN];

Пример:
Предположим, что у нас есть таблица developers, которая содержит следующие данные:


+----+-------------------+------------+------------+--------+
| ID | NAME              | SPECIALTY  | EXPERIENCE | SALARY |
+----+-------------------+------------+------------+--------+
|  1 | Eugene Suleimanov | Java       |          2 |   2000 |
|  2 | Peter Romanenko   | Java       |          3 |   3500 |
|  3 | Andrei Komarov    | JavaScript |          2 |   2100 |
|  4 | Konstantin Geiko  | C#         |          2 |   2000 |
|  5 | Asya Suleimanova  | UI/UX      |          2 |   1800 |
+----+-------------------+------------+------------+--------+

Теперь предположим, что нам необходимо получить разработчиков, чей опыт более 2 лет или зарплата более 2000.
Для этого нам необходимо использовать следующую команду:


SELECT * 
FROM developers 
WHERE EXPERIENCE > 2 OR SALARY > 2000;

В результате мы получим следующие записи:


+----+-----------------+------------+------------+--------+
| ID | NAME            | SPECIALTY  | EXPERIENCE | SALARY |
+----+-----------------+------------+------------+--------+
|  2 | Peter Romanenko | Java       |          3 |   3500 |
|  3 | Andrei Komarov  | JavaScript |          2 |   2100 |
+----+-----------------+------------+------------+--------+

На этом мы заканчиваем изучение связывающих условных операторов AND/OR.
В следующей статье мы рассмотрим способ изменения уже существующих данных.