SQL условие IN

В этом учебном материале вы узнаете, как использовать SQL условие IN с синтаксисом и примерами.

Описание

SQL условие IN (иногда называемое оператором IN) позволяет легко проверить, соответствует ли выражение какому-либо значению в списке значений. Он используется, чтобы помочь уменьшить потребность в нескольких условиях OR в операторе SELECT, INSERT, UPDATE или DELETE.

Синтаксис

Синтаксис условия IN в SQL:

expression IN (value1, value2, …. value_n);

Или

expression IN (subquery);

Параметры или аргументы

expression
Это значение для тестирования.
value1, value2 …, value_n
Это значения для проверки на соответствие expression. Если какое-либо из этих значений соответствует expression, условие IN будет иметь значение true.
subquery
Подзапрос — это оператор SELECT, чей набор результатов будет проверен на соответствие c expression. Если какое-либо из этих значений соответствует expression, условие IN будет иметь значение true.

Пример — использование условия IN с символьными значениями

Условие IN может использоваться с любым типом данных в SQL. Давайте посмотрим, как использовать условие IN с символьными (строковыми) значениями.
В этом примере у нас есть таблица suppliers со следующими данными:

supplier_idsupplier_namecitystate
100YandexMoscowRussian
200GoogleLansingMichigan
300OracleRedwood CityCalifornia
400BingRedmondWashington
500YahooSunnyvaleWashington
600DuckDuckGoPaoliPennsylvania
700QwantParisFrance
800FacebookMenlo ParkCalifornia
900Electronic ArtsSan FranciscoCalifornia

Введите следующий SQL оператор:

Будет выбрано 3 записи. Вот результаты, которые вы должны получить:

supplier_idsupplier_namecitystate
100YandexMoscowRussian
300OracleRedwood CityCalifornia
800FacebookMenlo ParkCalifornia

В этом примере будут возвращены все строки из таблицы suppliers, где supplier_name — Yandex, Oracle или Facebook. Поскольку в SELECT используется *, то все поля из таблицы suppliers будут отображаться в наборе результатов.

Это эквивалентно следующему оператору SQL:

Как вы можете видеть, использование условия IN облегчает чтение оператора и делает его более эффективным, чем использование нескольких условий OR.

Пример — использование условия IN с числовыми значениями

Далее давайте посмотрим, как использовать условие IN с числовыми значениями.

В этом примере у нас есть таблица customer и следующими данными:

customer_idfirst_namelast_namefavorite_website
4000JustinBiebergoogle.com
5000SelenaGomezbing.com
6000 MilaKunisyahoo.com
7000TomCruiseoracle.com
8000JohnnyDeppNULL
9000RussellCrowegoogle.com

Введите следующий SQL оператор:

Будет выбрано 4 записи. Вот результаты, которые вы должны получить:

customer_idfirst_namelast_namefavorite_website
5000SelenaGomezbing.com
7000TomCruiseoracle.com
8000JohnnyDeppNULL
9000RussellCrowegoogle.com

В этом примере будут возвращены все записи из таблицы customers, где customer_id равен 5000, 7000, 8000 или 9000.

Это эквивалентно следующему оператору SQL:

Пример — использование условия IN с оператором NOT

Наконец, давайте посмотрим, как использовать условие IN с оператором NOT. Оператор NOT используется для отмены условия. Когда мы используем оператор NOT с условием IN, мы создаем условие NOT IN. Это проверяет, нет ли выражения в списке.

В этом примере у нас есть таблица products со следующими данными:

product_idproduct_namecategory_id
1Pear50
2Banana50
3Orange50
4Apple50
5Bread75
6Sliced Ham25
7KleenexNULL

Введите следующий SQL оператор:

Будет выбрано 4 записи. Вот результаты, которые вы получите:

product_idproduct_namecategory_id
3Orange50
4Apple50
6Sliced Ham25
7KleenexNULL

В этом примере будут возвращены все строки из таблицы products, где product_name не является Pear, Banana или Bread. Иногда более эффективно перечислять значения, которые вы не хотите, в отличие от значений, которые вы хотите.
Это эквивалентно следующему оператору SQL:

Как видите, эквивалентный оператор записывается с использованием условий AND вместо условий OR, поскольку условие IN отменяется.