MySQL Предложение WHERE: AND, OR, IN, NOT IN Пример запроса
Что такое пункт WHERE в MySQL?
Предложение WHERE in MySQL — это ключевое слово, используемое для указания точных критериев данных или строк, которые будут затронуты указанным оператором SQL. Предложение WHERE может использоваться с такими операторами SQL, как INSERT, UPDATE, SELECT и DELETE, для фильтрации записей и выполнения различных операций с данными.
Мы рассмотрели, как запросить данные из база данных используя оператор SELECT из предыдущего руководства. Инструкция SELECT вернула все результаты из запрошенной таблицы базы данных.
Однако это те случаи, когда мы хотим ограничить результаты запроса указанным условием. Предложение WHERE в SQL пригодится в таких ситуациях.
Синтаксис предложения 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 | |
---|---|---|---|---|---|---|---|
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 выполняется только в том случае, если соблюдены ВСЕ указанные критерии фильтра.
SELECT * FROM `movies` WHERE `category_id` = 2 AND `year_released` = 2008;
movie_id | title | director | year_released | category_id |
---|---|---|---|---|
2 | Forgetting Sarah Marshal | Nicholas Stoller | 2008 | 2 |
Предложение WHERE в сочетании с – OR ЛОГИЧЕСКИЕ Operaтор
SELECT * FROM `movies` WHERE `category_id` = 1 OR `category_id` = 2;
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 Ключевое слово
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 | |
---|---|---|---|---|---|---|---|
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 в сочетании с – НЕ В Ключевое слово
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 | |
---|---|---|---|---|---|---|---|
4 | Gloria Williams | Female | 14-02-1984 | 2nd Street 23 | NULL | NULL | NULL |
Предложение WHERE в сочетании с – СРАВНЕНИЕ OperaTORs
= Равно
SELECT * FROM `members` WHERE `gender` = 'Female';
Выполнение приведенного выше сценария в MySQL Workbench против «myflixdb» дает следующие результаты.
membership_number | full_names | gender | date_of_birth | physical_address | postal_address | contct_number | |
---|---|---|---|---|---|---|---|
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 |
> Больше
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 |
< > Не равно
SELECT * FROM `movies` WHERE `category_id`<> 1;
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 используется для выбора строк, соответствующих списку значений.
Логические
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 |