Что такое пункт WHERE?
Мы рассмотрели, как запрашивать данные из базы данных с помощью оператора SELECT в предыдущем уроке. Оператор SELECT вернул все результаты из запрашиваемой таблицы базы данных.
Это, однако, времена, когда мы хотим ограничить результаты запроса указанным условием. Предложение SQL WHERE пригодится в таких ситуациях.
ГДЕ Синтаксис предложения
Основной синтаксис для предложения WHERE при использовании в операторе SELECT следующий.
SELECT * FROM tableName WHERE condition;
ВОТ
- «SELECT * FROM tableName» — это стандартная инструкция SELECT
- «WHERE» — это ключевое слово, которое ограничивает наш набор результатов запроса select, а «condition» — фильтр, который будет применен к результатам. Фильтр может быть диапазоном, отдельным значением или подзапросом.
Давайте теперь посмотрим на практический пример .
Предположим, что мы хотим получить личные данные участника из таблицы участников, учитывая номер участника 1, для этого мы будем использовать следующий скрипт.
SELECT * FROM `members` WHERE `membership_number` = 1;
Выполнение вышеупомянутого сценария в 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 [email protected]
Предложение WHERE в сочетании с оператором - AND LOGICAL
Предложение WHERE при использовании вместе с логическим оператором AND выполняется только в том случае, если соблюдены все указанные критерии фильтрации.
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 OR LOGICAL
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
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 [email protected] 2 Janet Smith Jones Female 23-06-1980 Melrose 123 NULL NULL [email protected] 3 Robert Phil Male 12-07-1989 3rd Street 34 NULL 12345 [email protected]
Предложение WHERE в сочетании с ключевым словом NOT IN
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
ГДЕ пункт в сочетании с - СРАВНИТЕЛЬНЫЕ ОПЕРАТОРЫ
= Равно
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 [email protected] 2 Janet Smith Jones Female 23-06-1980 Melrose 123 NULL NULL [email protected] 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 или DELETE.
- Предложение WHERE может использоваться вместе с логическими операторами, такими как AND и OR, операторами сравнения, такими как, = и т. Д.
- При использовании с логическим оператором AND все критерии должны быть выполнены.
- При использовании с логическим оператором ИЛИ должен быть выполнен любой из критериев.
- Ключевое слово IN используется для выбора строк, соответствующих списку значений.
Логические
SELECT * FROM `movierentals` WHERE `return_date` < '2012-06-25' AND movie_returned = 0;
reference_number transaction_date return_date membership_number movie_id movie_returned 14 21-06-2012 24-06-2012 2 2 0