Фильтрация данных
4. Фильтрация данных
Для фильтрации данных используется предложение WHERE
4.1. Фильтрация данных
В операторе SELECT данные фильтруются путем указания критерия поиска в предложении WHERE. Предложение WHERE указывается сразу после названия таблицы. Например, в примере извлекаются два столбца из таблицы товаров, но показываются не все строки, а только те, значение в столбце цена которых равна 3.49.
SELECT prod_name, prod_price выбор столбцов
FROM Products из таблицы
WHERE prod_price =3.49; критерий поиска
--------------------------
prod_name prod_price
Рекомендуемые материалы
Fish bean bag toy 3,49р.
Bird bean bag toy 3,49р.
Rabbit bean bag toy 3,49р.
Примечание. При одновременном использовании предложений WHERE и ORDER BY, предложение ORDER BY следует за предложением WHERE.
4.2. Операции в предложении WHERE
SQL поддерживает следующие операции:
= равенство
< > неравенство
!= неравенство
< меньше
<= меньше или равно
!< не меньше
> больше
>= больше или равно
!> не больше
BETWEEN между двумя указанными значениями
IS NULL значение NULL
Некоторые операции повторяются, например, <> (не равно) - это то же самое != (не равно) или !< (меньше чем) то же, что >= (больше или равно). Однако не все из этих операций поддерживаются всеми СУБД.
4.3. Проверка одного значения
В примере вывести название товаров, стоимость которых не превышает 10 долларов.
SELECT prod_name, prod_price выбор столбцов
FROM Products из таблицы
WHERE prod_price < 10; критерий поиска
--------------------------
prod_name prod_price
Fish bean bag toy 3,49р.
Bird bean bag toy 3,49р.
Rabbit bean bag toy 3,49р.
8 inch teddy bear 5,99р.
12 inch teddy bear 8,99р.
Raggedy Ann 4,99р.
King doll 9,49р.
Queen doll 9,49р.
В примере выбираются все товары, которые стоят $10 и меньше. Результат будет такой же.
SELECT prod_name, prod_price выбор столбцов
FROM Products из таблицы
WHERE prod_price <= 10; критерий поиска
2.3.2.2. Проверка на несовпадения
В примере выводятся товары, не изготовленные фирмой DLL01.
SELECT vend_id, prod_name выбор столбцов
FROM Products из таблицы
WHERE vend_id <> ‘DLL01’; критерий поиска
--------------------------
vend_id prod_name
BRS01 8 inch teddy bear
BRS01 12 inch teddy bear
BRS01 18 inch teddy bear
FNG01 King doll
FNG01 Queen doll
Использование операции != вместо <>
SELECT vend_id, prod_name выбор столбцов
FROM Products из таблицы
WHERE vend_id != ‘DLL01’; критерий поиска
СУБД Access выдает ошибку, так как такой вид операции не поддерживается.
Примечание. Одинарные кавычки используются для определения границ строки. При сравнении значения со столбцом, содержащим строковые данные, необходимы кавычки. При использовании числовых столбцов кавычки не используются.
4.4. Проверка на диапазон значений
Для поиска диапазона значений используется операция BETWEEN, которая требует два значения: начальное и конечное.
В примере выбираются все товары, цена которых выше $5 и ниже $10.
SELECT prod_name, prod_price выбор столбцов
FROM Products из таблицы
WHERE prod_price BETWEEN 5 AND 10; критерий поиска
--------------------------
prod_name prod_price
8 inch teddy bear 5,99р.
12 inch teddy bear 8,99р.
King doll 9,49р.
Queen doll 9,49р.
Примечание. Выбираются все значения из диапазона, включая указанные начальное и конечное значения.
4.5. Проверка на отсутствие значения
После создания таблицы можно указать, допустимо ли, чтобы в отдельных ее столбцах не содержались никакие значения. Когда в столбце, не содержится ни какого значения, это означает, что в нем содержится значение NULL. Для проверки значений NULL в столбцах используется специальная проверка IS NULL.
В примере возвращается список товаров без цены, т.е. поле prod_price пустое, а не с ценой 0. Так как таковых данных в базе нет, то и ответа мы не получим.
SELECT prod_name выбор столбцов
FROM Products из таблицы
WHERE prod_price IS NULL; критерий поиска
В таблице Vendors (поставщики) есть столбцы со значениями NULL, так как в столбце vend_state (штат) будет содержаться NULL, если не указан никакой штат (когда адресат находится за пределами Соединенных Штатов).
SELECT vend_id выбор столбцов
Если Вам понравилась эта лекция, то понравится и эта - Содержание.
FROM Vendors из таблицы
WHERE vend_state IS NULL; критерий поиска
--------------------------
vend_id
FNG1
JTS01