В данном посте для простоты будет использоваться не локальная база данных, а взятая тут. В поле SQL Statement вы можете копировать код из данного поста и сразу смотреть результат.

В прошлом посте мы рассматривали базовые операторы SQL SELECT FROM, с помощью которого можно выбирать данные из таблицы. Но чаще всего эти операторы используются в связке с оператором WHERE.

Оператор WHERE

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

Пример 1. В прошлом посте мы рассмотрели вариант получения данных о пользователях (из таблицы Customers) из страны France:

SELECT 
    CustomerName AS firstName, 
    Country AS country
FROM Customers
WHERE Country = "France"

Что делает данный запрос. Выбирает поля CustomerName и Country и условие, что Country = "France". Это самый простой вариант использования, но также тут есть и дополнительные операторы. Их мы и рассмотрим в этом посте.

Операторы сравнения

Мы можем использовать такие операторы сравнения:

  • != — не равно
  • > — больше чем
  • >= — больше или равно
  • < — меньше чем
  • <= — меньше или равно

Пример 2. Допустим нам нужно получить всех пользователей, которые не с Франции. Тогда мы сделаем такой запрос:

SELECT 
    CustomerName AS firstName, 
    Country AS country
FROM Customers
WHERE Country != "France"

Оператор AND (И)

При использовании логического оператора AND в SQL оба условия должны вернуть истину (true).

Пример 3. Для примера возьмем данные из таблицы OrderDetails. Получим данные о конкретном заказе и с количеством больше или равным 10:

SELECT * 
FROM OrderDetails
WHERE OrderID = 10248 AND Quantity >= 10

Мы получим два заказа:

Оператор AND в SQL

Оператор OR (ИЛИ)

Данный оператор в отличии от предыдущего должен вернуть одно истинное значение.

Пример 4. Выберем пользователей из таблицы Customers с двух стран France и Germany:

SELECT * 
FROM Customers
WHERE Country = 'France' OR Country = 'Germany'
Оператор OR в SQL

Такой же результат можно получить с помощью оператора IN.

Мы можем объединить оба оператора AND и OR в одном запросе:

SELECT * 
FROM Customers
WHERE City = 'Berlin' OR City = 'Paris' AND PostalCode = 75012

Так мы получим две записи: один пользователь из Berlin, второй из Paris, но только тот где PostalCode 75012

Ваши вопросы и комментарии: