10.01.2017 Views

sql

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

• При использовании ключевого слова IN гораздо легче управлять порядком<br />

обработки (так как используется меньшее количество операторов).<br />

• Логические операторы IN почти всегда быстрее обрабатываются, чем списки<br />

логических операторов OR.<br />

• Самое большое преимущество логического оператора IN в том, что в данном<br />

операторе может содержаться еще одна инструкция SELECT, а это позволяет<br />

создавать очень динамичные предложения WHERE. Более подробно вы об этом<br />

узнаете в уроке 11, "Использование подзапросов".<br />

IN<br />

Ключевое слово, используемое в предложении WHERE для указания списка значений,<br />

обрабатываемых так же, как это делается в случае применения ключевого слова OR.<br />

Использование ключевого слова NOT<br />

Логический оператор NOT предложения WHERE служит для выполнения только<br />

одной функции – отрицать все предложения, следующие за ним. Поскольку NOT никогда<br />

не используется сам по себе (а только вместе с другими логическими операторами), его<br />

синтаксис немного отличается от синтаксиса остальных операторов. В отличие от них,<br />

NOT вставляется перед названием столбца, значения которого нужно отфильтровать, а не<br />

после.<br />

NOT<br />

Ключевое слово, применяемое в предложении WHERE для отрицания какого-то условия.<br />

В следующем примере демонстрируется использование логического оператора<br />

NOT. Чтобы извлечь список продуктов, изготовленных всеми производителями, кроме<br />

DLL01, можно потребовать выполнить следующее:<br />

ВВОД<br />

SELECT prod_name<br />

FROM Produces<br />

WHERE NOT vend_id = 'DLL01'<br />

ORDER BY prod_name;<br />

ВЫВОД<br />

prod_name<br />

12 inch teddy bear<br />

18 inch teddy bear<br />

8 inch teddy bear<br />

King doll<br />

Queen doll<br />

Анализ<br />

Здесь логический оператор NOT отрицает предложение, следующее за ним.<br />

Поэтому СУБД извлекает не те значения vend_id, которые совпадают с DLL01, а все<br />

остальные.<br />

Предыдущий запрос можно было также выполнить при помощи операции :<br />

ВВОД<br />

SELECT prod_name<br />

FROM Products<br />

WHERE vend_id о 'DLL01'<br />

ORDER BY prod_name,-

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!