OR
AND
Операции конъюнкции и дизъюнкции
Как быть, если необходимо использовать несколько условий, чтобы сузить набор возвращаемых запросом данных? Нужно скомбинировать условия с помощью операций конъюнкции и дизъюнкции. Эти операции задаются с помощью ключевых слов AND и OR.
Ключевое слово AND позволяет связать логическим умножением два условия в выражении ключевого слова WHERE. Чтобы оператор SQL, представляющий транзакцию или запрос, выполнил заданное действие, оба связанные ключевым словом AND условия должны возвратить TRUE.
Пример _________________________________ Значение ______________
WHERE EMPLOYEE_ID = '333333333' ЗначениеEMPLOYEE_ID должно быть
AND SALARY = '20000' равным 333333333, а значение SALARY
должно быть равным 20000
SELECT * FROM PROOCTS_TBL WHERE COST > 10 AND COST < 30;
PROD_ID PROD_DESC COST
11235 КОСТЮМ ВЕДЬМЫ 29.99
90 ФОНАРИ 14.5
В данном случае требуется, чтобы для показанных товаров стоимость была больше 10 и меньше 30.
SELECT * FROM PRODUCTS_TBL WHERE PROD_ID = '7725' AND PROD_ID = '2345';
0 строк выбраны.
Здесь вывод не содержит данных, поскольку каждая строка данных имеет только один код товара.
Ключевое слово OR позволяет связать логическим сложением условия в выражении ключевого слова WHERE. Чтобы оператор SQL, представляющий транзакцию или запрос, выполнил заданное действие, хотя бы одно из связанных ключевым словом AND условий должно возвратить TRUE.
Пример ______________________ Значение ___________________
WHERE SALARY = ' 20000 ' Значение SALARY должно быть равным ли-
OR SALARY = '30000' бо 20000, либо 30000
Операции сравнения и логические операции в выражениях могут использоваться самостоятельно или в комбинации с другими подобными операциями.
SELECT * FROM PRODUCTS_TBL WHERE PROD_ID = '7725' OR PROD_ID = '2345';
PROD_ID PROD_DESC COST
2345 ПОЛОЧКА ИЗ ДУБА 59.99
В данном случае для внесения данных в результат запроса хотя бы одно из условий должно возвратить TRUE. Найдена одна подходящая запись.
При использовании в операторе SQL нескольких условий для зрительного разделения условий на логично связанные группы можно использовать круглые скобки, что существенно облегчает чтение и понимание оператора. Но не забывайте о том, что неправильно расставленные скобки могут привести к неверным результатам при выводе.
В следующем примере использовано одно ключевое слово AND и два OR. Обратите внимание на размещение скобок.
SELECT * FROM PRODUCTS_TBL WHERE COST >10 AND (PROD_ID = '222' OR PROD_ID = '90' OR PROD_ID = '11235');
PROD_ID PROD_DESC COST
11235 КОСТЮМ ВЕДЬМЫ 29.99
90 ФОНАРИ 14.5
В этом примере стоимость должна превышать 10, а код товара должен быть любым из трех указанных. В вывод не попала строка для товара с кодом 222 из-за стоимости, которая оказалась не больше 10.
Для всех выше рассмотренных типов операций можно построить их отрицания, чтобы таким образом рассмотреть противоположные условия.
Ключевое слово NOT обращает смысл операции, с которой оно используется. Ключевое слово NOT используется с операциями следующим образом.
- NOT BETWEEN
- IS NOT NULL
- NOT IN
- NOT EXISTS
- NOT LIKE
- NOT UNIIQUE
Все эти возможности будут рассмотрены в следующих разделах.