SELECT *
FROM PRODUCTS_TBL
WHERE COST > 20;
PROD_ID PROD_DESC COST
11235 КОСТЮМ ВЕДЬМЫ 29.99
2345 ПОЛОЧКА ИЗ ДУБА 59.99
2 строки выбраны.
В следующем примере обратите внимание на то, что значение 24.99 не включено в вывод результата запроса.
SELECT *
FROM PRODUCTS_TBL
WHERE COST < 24.99;
PROD_ID PROD_DESC COST
222 ПЛАСТИКОВЫЕ ТЫКВЫ 7.75
13 ИСКУССТВЕННЫЕ ПАРАФИНОВЫЕ ЗУБЫ 1.1
90 ФОНАРИ 14.5
15 КОСТЮМЫ В АССОРТИМЕНТЕ 10
9 СЛАДКАЯ КУКУРУЗА 1.35
6 ТЫКВЕННЫЕ КОНФЕТЫ 1.45
87 ПЛАСТИКОВЫЕ ПАУКИ 1.05
119 МАСКИ В АССОРТИМЕНТЕ 4.95
1234 ЦЕПОЧКА ДЛЯ КЛЮЧЕЙ 5.95
9 строк выбраны.
Знак равенства можно комбинировать со знаками "меньше" и "больше", как в следующих примерах.
WHERE SALARY <= '20000' Зарплата меньше или равна 20000
WHERE SALARY >= '20000' Зарплата больше или равна 20000
"Меньше или равно" включает значение 20000 и все значения, меньшие 20000. Любое такое значение вернет TRUE, а любое значение, большее 20000, вернет FALSE. Подобным образом определяется "больше или равно". В данном случае, в отличие от строгих неравенств, значение 20000 возвращает TRUE.
SELECT *
WHERE COST <= 24.99;
PROD__ID PROD_DESC COST
11235 КОСТЮМ ВЕДЬМЫ 9.99
222 ПЛАСТИКОВЫЕ ТЫКВЫ 7.75
13 ИСКУССТВЕННЫЕ ПАРАФИНОВЫЕ ЗУБЫ 1.1
90 ФОНАРИ 14.5
15 КОСТЮМЫ В АССОРТИМЕНТЕ 10
9 СЛАДКАЯ КУКУРУЗА 1.35
б ТЫКВЕННЫЕ КОНФЕТЫ 1.45
87 ПЛАСТИКОВЫЕ ПАУКИ 1.05
119 МАСКИ В АССОРТИМЕНТЕ 4.95
1234 ЦЕПОЧКА ДЛЯ КЛЮЧЕЙ 5.95
10 строк выбраны.
Логические операции в SQL задаются ключевыми словами, а не символами. Ниже мы рассмотрим следующие логические операции.
• IS NULL . EXISTS
• BETWEEN
• UNIQUE
• IN
• ALL И ANY
• LIKE
Ключевое слово is NULL используется для проверки равенства данного значения значению NULL. Например, если требуется узнать, кто из сотрудников не имеет пейджера, можно искать значения NULL в столбце PAGER таблицы EMPLOYEEJTBL.
Вот пример проверки равенства значения значению NULL.
WHERE SALARY is NULL Для зарплаты не задано значение
Вот пример, в котором значение NULL не будет найдено.
WHERE SALARY = NULL Зарплата имеет значение, равное
строке символов N-U-L-L
SELECT EMP_ID, LAST NAME, FXRST_NAME, PAGER
FROM EMPLOYEE_TBL
WHERE PAGER IS NULL;
EMP_ID LAST_NAME FIRST_NAME PAGER
311549902 STEPHENS TINA
442346889 PLEW LINDA
220984332 WALLACE MARIAH
443679012 SPURGEON TIFFANY
4 строки выбраны.
Вы должны понимать, что буквальная строка 'NULL' отличается от значения NULL. Посмотрите на следующий пример.
SELECT EMP_ID, LAST_NAME, FIRST_NAME, PAGER
FROM EMPLOYEE_TBL
WHERE PAGER = NULL;
О строк выбрано.
Ключевое слово BETWEEN используется для поиска значений, попадающих в диапазон, заданный некоторыми минимальным и максимальным значениями. Эти минимальное и максимальное значения включаются в соответствующее условие.
Пример__________________________________Значение___________
WHERE SALARY BETWEEN '20000' Зарплата должна находиться в диапазоне
AND '30000' от 20000 до 30000, включая крайние значения диапазона
SELECT *
FROM PRODUCTS_TBL
WHERE BETWEEN 5.95 AND 14.5;
PROD_ID PROD_DESC COST
222 ПЛАСТИКОВЫЕ ТЫКВЫ 7.75
90 ФОНАРИ 14.5
15 КОСТЮМЫ В АССОРТИМЕНТЕ 10
1234 ЦЕПОЧКА ДЛЯ КЛЮЧЕЙ 5.95
4 строки выбраны.
Обратите внимание на то, что в вывод включены крайние значения 5. 95 и 14 .5.
BETWEEN предполагает включение минимального и максимального значений диапазона в результаты запроса.
Ключевое слово IN используется для сравнения значения с заданным списком буквальных значений. Чтобы возвратилось TRUE, сравниваемое значение должно совпадать хотя бы с одним значением из списка.
Пример__________________________________________Значение______
WHERE SALARY IN ('20000', Зарплата должна равняться 20000, 30000 или
'30000', '40000') 40000
SELECT *
FROM PRODUCTS_TBL
WHERE PROD_ID IN <'13','9','87','119');
PROD_ID PROD_DESC COST
13 ИСКУССТВЕННЫЕ ПАРАФИНОВЫЕ ЗУБЫ 1.1
9 СЛАДКАЯ КУКУРУЗА 1.35
87 ПЛАСТИКОВЫЕ ПАУКИ 1.05
119 МАСКИ В АССОРТИМЕНТЕ 4.95
4 строки выбраны.
То же самое можно получить, комбинируя условия с помощью ключевого слова OR, но с помощью IN результат получается быстрее.
Ключевое слово LIKE используется для нахождения значений, похожих на заданное. В данном случае предполагается использование следующих двух знаков подстановки:
• знак процента (%);
• знак подчеркивания (_).
Знак процента представляет ноль, один или несколько символов. Знак подчеркивания представляет один символ или число. Знаки подстановки могут использоваться в комбинации.
Вот несколько примеров.
Пример_________________________Значение_________________
WHERE SALARY LIKE '200%' Любое значение, начинающееся с 200
WHERE SALARY LIKE ' %200% ' Любое значение, имеющее 200 в любой позиции
WHERE SALARY LIKE '_00%' Любое значение, имеющее 00 во второй и третьей
позициях WHERE SALARY LIKE ' 2_%_%' Любое значение, начинающееся с 2 и состоящее
как минимум из трех символов
WHERE SALARY LIKE '%2' Любое значение, заканчивающееся 2
WHERE SALARY LIKE '_2%3' Любое значение, имеющее 2 во второй позиции и
заканчивающееся 3
WHERE SALARY LIKE '2__3' Любое значение длиной 5 символов, начинающееся с 2 и
заканчивающееся 3
В следующем примере выбираются описания для тех товаров, описания которых заканчиваются на "ы".
SELECT PROD_DESC
FROM PRODUCTS_TBL
WHERE PROD_DESC LIKE '%Ы';
PROD_DESC
КОСТЮМ ВЕДЬМЫ
ПЛАСТИКОВЫЕ ТЫКВЫ
ИСКУССТВЕННЫЕ ПАРАФИНОВЫЕ ЗУБЫ
ТЫКВЕННЫЕ КОНФЕТЫ
4 строки выбраны.
В следующем примере выбираются описания товаров с буквой "Ы" во второй позиции.
SELECT PROD_DESC
FROM PRODUCTS_TBL
WHERE PROD_DESC LIKE '_Ы%';
PROD_DESC
ТЫКВЕННЫЕ КОНФЕТЫ
1 строка выбрана.
Ключевое слово EXISTS используется для поиска в таблице строк, удовлетворяющих заданным критериям.
Пример______________________________Значение______
WHERE EXISTS (SELECT EMP_ID Проверка наличия EMP_ID со значени-
FROM EMPLOYEE_TBL ем 333333333 в таблице EMPLOYEE_TBL
WHERE EMPLOYEE_ID = '333333333') -
В следующем примере в операторе используется подчиненный запрос, обсуждение которых планируется провести в ходе урока 14, "Использование подзапросов".
SELECT COST
FROM PRODUCTSJTBL
WHERE EXISTS ( SELECT COST
FROM PRODUCTS_TBL
WHERE COST > 100 );
О строк выбраны.
В данном случае не выбрано ни одной строки, поскольку в таблице нет записей для товаров с ценой, большей 100. Рассмотрим другой пример.