MySQL Предложение WHERE: AND, OR, IN, NOT IN Пример запроса

Что такое пункт WHERE в MySQL?

Предложение WHERE in MySQL — это ключевое слово, используемое для указания точных критериев данных или строк, которые будут затронуты указанным оператором SQL. Предложение WHERE может использоваться с такими операторами SQL, как INSERT, UPDATE, SELECT и DELETE, для фильтрации записей и выполнения различных операций с данными.

Мы рассмотрели, как запросить данные из база данных используя оператор SELECT из предыдущего руководства. Инструкция SELECT вернула все результаты из запрошенной таблицы базы данных.

Однако это те случаи, когда мы хотим ограничить результаты запроса указанным условием. Предложение WHERE в SQL пригодится в таких ситуациях.

Предложение WHERE в MySQL
Предложение WHERE в MySQL

Синтаксис предложения WHERE

Основной синтаксис предложения WHERE при использовании в MySQL Инструкция SELECT WHERE выглядит следующим образом.

SELECT * FROM tableName WHERE condition;

ВОТ

  • «ВЫБРАТЬ * ИЗ имени таблицы» это стандарт Оператор SELECT
  • "ГДЕ" это ключевое слово, которое ограничивает наш набор результатов запроса выбора и "состояние" — фильтр, который будет применен к результатам. Фильтром может быть диапазон, одно значение или подзапрос.

Давайте теперь посмотрим на практический пример.

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

SELECT * FROM `members` WHERE `membership_number` = 1;

Выполнение приведенного выше сценария в MySQL верстак на «myflixdb» даст следующие результаты.

membership_number full_names gender date_of_birth physical_address postal_address contct_number email
1 Janet Jones Female 21-07-1980 First Street Plot No 4 Private Bag 0759 253 542 janetjones@yagoo.cm

Предложение WHERE в сочетании с – И ЛОГИЧЕСКИЕ Operaтор

Условие WHERE в MySQL при использовании вместе с логическим оператором AND выполняется только в том случае, если соблюдены ВСЕ указанные критерии фильтра.

Давайте теперь рассмотрим практический пример. Предположим, мы хотим получить список всех фильмов категории 2, выпущенных в 2008 году. Для этого мы будем использовать сценарий, показанный ниже.
SELECT * FROM `movies` WHERE `category_id` = 2 AND `year_released` = 2008;
Выполнение приведенного выше сценария в MySQL Workbench против «myflixdb» дает следующие результаты.
movie_id title director year_released category_id
2 Forgetting Sarah Marshal Nicholas Stoller 2008 2

Предложение WHERE в сочетании с – OR ЛОГИЧЕСКИЕ Operaтор

Предложение WHERE при использовании вместе с оператором OR выполняется только в том случае, если выполняется какой-либо или весь указанный критерий фильтра.
Следующий скрипт получает все фильмы либо в категории 1, либо в категории 2.
SELECT * FROM `movies` WHERE `category_id` = 1 OR `category_id` = 2;
Выполнение приведенного выше сценария в MySQL Workbench против «myflixdb» дает следующие результаты.
movie_id title director year_released category_id
1 Pirates of the Caribean 4 Rob Marshall 2011 1
2 Forgetting Sarah Marshal Nicholas Stoller 2008 2

Предложение WHERE в сочетании с – IN Ключевое слово

ГДЕ в MySQL Предложение, при использовании вместе с ключевым словом IN, влияет только на строки, значения которых соответствуют списку значений, указанному в ключевом слове IN. MySQL Оператор IN помогает сократить количество предложений OR, которые вам, возможно, придется использовать.
Следующие MySQL Запрос WHERE IN дает строки, где номер членства равен 1, 2 или 3.
SELECT * FROM `members` WHERE `membership_number` IN (1,2,3);

Выполнение приведенного выше сценария в MySQL Workbench против «myflixdb» дает следующие результаты.

membership_number full_names gender date_of_birth physical_address postal_address contct_number email
1 Janet Jones Female 21-07-1980 First Street Plot No 4 Private Bag 0759 253 542 janetjones@yagoo.cm
2 Janet Smith Jones Female 23-06-1980 Melrose 123 NULL NULL jj@fstreet.com
3 Robert Phil Male 12-07-1989 3rd Street 34 NULL 12345 rm@tstreet.com

Предложение WHERE в сочетании с – НЕ В Ключевое слово

Предложение WHERE при использовании вместе с ключевым словом NOT IN НЕ влияет на строки, значения которых соответствуют списку значений, указанному в ключевом слове NOT IN.
Следующий запрос дает строки, где номер членства НЕ равен 1, 2 или 3.
SELECT * FROM `members` WHERE `membership_number` NOT IN (1,2,3);

Выполнение приведенного выше сценария в MySQL Workbench против «myflixdb» дает следующие результаты.

membership_number full_names gender date_of_birth physical_address postal_address contct_number email
4 Gloria Williams Female 14-02-1984 2nd Street 23 NULL NULL NULL

Предложение WHERE в сочетании с – СРАВНЕНИЕ OperaTORs

Операторы сравнения меньше (), равно (=), не равно () можно использовать с предложением WHERE.

= Равно

Следующий скрипт получает всех членов женского пола из таблицы участников, используя оператор сравнения «равно».
SELECT * FROM `members` WHERE `gender` = 'Female';

Выполнение приведенного выше сценария в MySQL Workbench против «myflixdb» дает следующие результаты.

membership_number full_names gender date_of_birth physical_address postal_address contct_number email
1 Janet Jones Female 21-07-1980 First Street Plot No 4 Private Bag 0759 253 542 janetjones@yagoo.cm
2 Janet Smith Jones Female 23-06-1980 Melrose 123 NULL NULL jj@fstreet.com
4 Gloria Williams Female 14-02-1984 2nd Street 23 NULL NULL NULL

> Больше

Следующий скрипт получает все платежи, превышающие 2,000, из таблицы платежей.
ВЫБЕРИТЕ * ИЗ `платежей` ГДЕ `amount_paid` > 2000;
Выполнение приведенного выше сценария в MySQL Workbench против «myflixdb» дает следующие результаты.
payment_id membership_number payment_date description amount_paid external_reference_number
1 1 23-07-2012 Movie rental payment 2500 11
3 3 30-07-2012 Movie rental payment 6000 NULL

< > Не равно

Следующий скрипт получает все фильмы, идентификатор категории которых не равен 1.
SELECT * FROM `movies` WHERE `category_id`<> 1;
Выполнение приведенного выше сценария в MySQL Workbench против «myflixdb» дает следующие результаты.
movie_id title director year_released category_id
2 Forgetting Sarah Marshal Nicholas Stoller 2008 2
5 Daddy's Little Girls NULL 2007 8
6 Angels and Demons NULL 2007 6
7 Davinci Code NULL 2007 6
9 Honey mooners John Schultz 2005 8

Итого

  • Предложение SQL WHERE используется для ограничения количества строк, на которые влияют операторы SELECT, UPDATE или УДАЛИТЬ запрос.
  • Условие WHERE в SQL можно использовать в сочетании с логическими операторами, такими как AND и OR, операторами сравнения, такими как ,= и т. д.
  • При использовании с AND логический оператор, все критерии должны быть соблюдены.
  • При использовании с логическим оператором ИЛИ любой из критериев должен соблюдаться.
  • Ключевое слово IN используется для выбора строк, соответствующих списку значений.

Логические

Предположим, мы хотим получить список взятых напрокат фильмов, которые не были возвращены в срок 25. Для достижения этой цели мы можем использовать предложение оператора SQL WHERE вместе с оператором сравнения «меньше» и логическим оператором AND.
SELECT * FROM `movierentals` WHERE `return_date` < '2012-06-25' AND movie_returned = 0;

Выполнение приведенного выше сценария в MySQL Workbench дает следующие результаты.

reference_number transaction_date return_date membership_number movie_id movie_returned
14 21-06-2012 24-06-2012 2 2 0