MySQL Речення WHERE: AND, OR, IN, NOT IN Приклад запиту

Що таке речення WHERE в MySQL?

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

Ми розглянули, як запитувати дані з a база даних використовуючи оператор SELECT у попередньому посібнику. Оператор SELECT повернув усі результати із запитуваної таблиці бази даних.

Однак це випадки, коли ми хочемо обмежити результати запиту певною умовою. Речення WHERE в SQL стає в нагоді в таких ситуаціях.

речення WHERE в MySQL
речення WHERE в MySQL

Синтаксис пропозиції WHERE

Базовий синтаксис пропозиції WHERE, коли вона використовується в a MySQL Оператор SELECT WHERE виглядає наступним чином.

SELECT * FROM tableName WHERE condition;

ТУТ

  • «SELECT * FROM tableName» є стандартом Оператор SELECT
  • «ДЕ» це ключове слово, яке обмежує набір результатів запиту вибірки та "хвороба" це фільтр, який буде застосовано до результатів. Фільтр може бути діапазоном, одним значенням або підзапитом.

Давайте тепер подивимося на a практичний приклад.

Припустімо, що ми хочемо отримати особисті дані учасника з таблиці members з номером членства 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. The MySQL Оператор IN допомагає зменшити кількість пропозицій АБО, які вам доведеться використовувати.
Наступні MySQL Запит WHERE IN дає рядки, де membership_number дорівнює 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.
Наступний запит надає рядки, де membership_number НЕ 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 у поєднанні з – ПОРІВНЯННЯ Operaторс

Оператори порівняння менше (), дорівнює (=), не дорівнює () можна використовувати з пропозицією WHERE

= Дорівнює

Наступний сценарій отримує всіх учасників жіночої статі з таблиці members за допомогою оператора порівняння дорівнює.
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, із таблиці платежів.
SELECT * FROM `payments` WHERE `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 або запит DELETE.
  • Умову WHERE у SQL можна використовувати в поєднанні з логічними операторами, такими як AND та OR, операторами порівняння, такими як ,= тощо.
  • При використанні з І логічний оператор, всі критерії мають відповідати.
  • При використанні з логічним оператором АБО будь-який із критеріїв має бути виконано.
  • Ключове слово IN використовується для вибору рядків, які відповідають списку значень.

Мозок тизер

Припустімо, що ми хочемо отримати список взятих напрокат фільмів, які не були повернуті вчасно 25/06/2012. Для цього ми можемо використовувати оператор SQL WHERE разом з оператором порівняння менше та логічним оператором І.
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