Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
лекции по бд.doc
Скачиваний:
1
Добавлен:
01.05.2025
Размер:
4.79 Mб
Скачать

Операции конъюнкции и дизъюнкции

Как быть, если необходимо использовать несколько условий, чтобы сузить набор возвращаемых запросом данных? Нужно скомбинировать условия с помощью операций конъюнкции и дизъюнкции. Эти операции задаются с помощью ключевых слов AND и OR.

AND

Ключевое слово 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

Ключевое слово 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.