В этом учебном материале вы узнаете, как использовать Oracle условие AND с синтаксисом и примерами.
Описание
Oracle условие AND (называемое, также оператор AND) используется для проверки в двух или более условий операторов SELECT, INSERT, UPDATE или DELETE.
Синтаксис
Синтаксис условия AND в Oracle/PLSQL:
AND condition2
...
AND condition_n;
Параметры или аргументы
condition1, condition2, ... condition_n
Все условия, которые должны быть выполнены для выбранных записей.
Логика condition1 AND condition2
condition1 | condition2 | condition1 AND condition2 |
---|---|---|
TRUE | TRUE | TRUE |
TRUE | FALSE | FALSE |
TRUE | NULL | NULL |
FALSE | TRUE | FALSE |
FALSE | FALSE | FALSE |
FALSE | NULL | FALSE |
NULL | TRUE | NULL |
NULL | FALSE | FALSE |
NULL | NULL | NULL |
Примечание
- Oarcle условие AND позволяет проверять 2 и более условий.
- Требование Oarcle условия AND, чтобы все условия (condition1, condition2, condition_n) должны быть выполнены для записей, которые включены в результирующий набор.
Пример с оператором SELECT
В операторе SELECT первое условие AND связывается со вторым условием.
Например:
1 2 3 4 |
SELECT * FROM customers WHERE state = 'Nevada' AND customer_id > 12000; |
В этом примере оператор AND возвратил бы всех customers, которые находятся в state ‘Nevada’ и для которых customer_id > 12000. Поскольку в SELECT используется *,то в результирующем наборе появятся все поля из таблицы customers (клиентов).
Пример JOINING tables (объединение таблиц)
Следующий пример показывает, как условие AND может быть использовано для объединения нескольких таблиц в операторе SELECT.
Например:
1 2 3 4 |
SELECT orders.order_id, suppliers.supplier_name FROM suppliers, orders WHERE suppliers.supplier_id = orders.supplier_id AND suppliers.supplier_name = 'RosKosmos'; |
Не смотря на то, что этот SQL запрос работает просто отлично, вы могли бы переписать этот SQL следующим образом, используя INNER JOIN.
Например:
1 2 3 4 5 |
SELECT orders.order_id, suppliers.supplier_name FROM suppliers INNER JOIN orders ON suppliers.supplier_id = orders.supplier_id WHERE suppliers.supplier_name = 'RosKosmos'; |
Этот пример Oracle оператора AND возвратит все строки, где supplier_name является 'RosKosmos’. А таблицы suppliers и orders соединяются посредством supplier_id. Вы заметите, что у всех полей стоят префиксы начинающиеся с имени таблицы (то есть: orders.order_id). Это необходимо, чтобы исключить любую неясность, на какую таблицу ссылается поле. Как одно и тоже поле может существовать как в таблице suppliers так и в таблице orders.
Этот результирующий набор будет отображать поля order_id и supplier_name.
Пример с оператором INSERT
Следующий пример показывает, как условие AND может быть использовано в операторе INSERT.
Например:
1 2 3 4 5 6 |
INSERT INTO suppliers (supplier_id, supplier_name) SELECT customer_id, customer_name FROM customers WHERE customer_name = 'Paradise' AND customer_id <= 3000; |
В этом примере показана вставка в таблицу suppliers всех записей customer_id и customer_name из таблицы customers, где customer_name является ‘Paradise’ и имеет customer_id меньше или равно 3000.
Пример с оператором UPDATE
Этот пример показывает, как условие AND может быть использовано в операторе UPDATE .
Например:
1 2 3 4 |
UPDATE suppliers SET supplier_name = 'Nike' WHERE supplier_name = 'Adidas' AND offices = 8; |
Этот пример обновит все значения поля supplier_name таблицы suppliers в ‘Nike’, где supplier_name было ‘Adidas’ и имело 8 offices.
Пример c DELETE
И, наконец, последний пример как условие AND может быть использовано в DELETE.
Например:
1 2 3 |
DELETE FROM suppliers WHERE supplier_name = 'Apple' AND product = 'iPod'; |
Этот пример удалит все записи из таблицы suppliers, чье supplier_name было ‘Apple’, и product был ‘iPod’.