Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
16
Добавлен:
03.06.2015
Размер:
870.05 Кб
Скачать

Использование скобок в предложениях WHERE

Предложения WHERE могут содержать любое количество логических операторов AND и OR. Комбинируя их, можно создавать сложные фильтры.

SQL (как и большинство других языков) вначале обрабатывает логические операторы AND, а потом уже логические операторы OR. Другими словами - приоритет у логического оператора AND выше чем у OR.

Однако при использовании предложения WHERE с ключевыми словами AND и OR, рекомендуется всегда вставлять скобки, чтобы точно сгруппировать логические операторы.

В этом случае вы всегда будете застрахованы от неопределенностей

SELECT prod_id, prod_price, prod_name FROM Products

WHERE ( prod_name = ’Рыба’ OR prod_name >= ’Ф’ ) AND prod_price >= 40

11

Использование ключевого слова IN

Ключевое слово IN используется для указания диапазона условий, любое из которых может быть выполнено.

При этом значения, заключенные в скобки, перечисляются через запятую.

SELECT prod_name, prod_price

FROM Products

WHERE prod_id IN ( 351, 53, 125, 37 )

ORDER BY prod_name

12

SELECT prod_name, prod_price FROM Products

WHERE prod_id IN ( 351, 53, 125, 37 ) ORDER BY prod_name

Тот же результат можно получить используя OR :

SELECT prod_name, prod_price

FROM Products

WHERE prod_id = 351 OR prod_id = 53 OR prod_id = 125 OR prod_id = 37

ORDER BY prod_name

13

Преимущества IN

Ключевое слово IN выполняет ту же функцию, что и OR.

Преимущества IN следующие:

1)При работе с длинными списками необходимых значений синтаксис логического оператора IN гораздо легче читать.

2)При использовании ключевого слова IN гораздо легче управлять порядком обработки (так как используется меньшее количество операторов).

3)Логические операторы IN почти всегда быстрее обрабатываются, чем списки логических операторов OR.

4)Самое большое преимущество логического оператора IN в том, что в данном операторе может содержаться еще одна инструкция SELECT, а это позволяет создавать очень динамичные предложения WHERE.

14

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

Логический оператор NOT служит для выполнения только одной функции — отрицать все предложения, следующие за ним.

SELECT prod_name

FROM Products

WHERE NOT prod_id = 'DLL011'

ORDER BY prod_name

15

Ещё один пример

SELECT prod_name, prod_price

FROM Products

WHERE prod_id NOT IN ( 351, 53, 125, 37 ) AND prod_price > 100

AND prod_name >= ’П’

AND prod_name < ’Р’

ORDER BY prod_price DESC, prod_name ASC

16

Поиск не известных заранее значений

Все предыдущие операторы, которые мы рассмотрели, производили фильтрацию по известным значениям.

Они искали совпадения по одному или нескольким значениям, более чем и менее чем известное значение или диапазон значений.

Однако фильтрация данных таким способом не всегда работает.

Например, как бы вы искали продукты, в названии которых содержится слово ’рыба’?

Этого нельзя сделать при помощи простых операций сравнения

17

Поиск данных по шаблону

При помощи метасимволов можно создавать условия поиска данных по шаблону.

В этом примере, для того чтобы найти все продукты, в названии которых содержится слово ’рыба’, необходимо составить шаблон поиска, позволяющий найти это слово в любом месте названия продукта.

Шаблон должен выглядеть примерно так:

«любые символы» рыба «любые символы»

18

Использование метасимволов для фильтрации

Приведенный выше шаблон – не удобный в использовании.

Если заменить «любые символы» на специальный знак %, то получим более короткое и удобное выражение:

%рыба% Знак процента – метасимвол

19

Ключевое слово LIKE

В SQL поддерживаются метасимволы нескольких типов.

Чтобы применять метасимволы в условиях поиска, необходимо использовать ключевое слово LIKE.

Оно сообщает СУБД, что следующий шаблон для поиска необходимо сравнивать с использованием метасимволов, а не искать точные совпадения.

Поиск с использованием метасимволов может осуществляться только в текстовых полях (строках)

Неудобной особенностью языка SQL является то, что в его разных вариантах используется разный набор метасимволов.

20

Соседние файлы в папке Управл_данными