Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
МУ_практика_проектирование БД.docx
Скачиваний:
5
Добавлен:
01.07.2025
Размер:
317 Кб
Скачать
☆

Выборка с условием

Для задания условия выборки в SQL-запросе используется команда (ключевое слово) WHERE. Условие, следующее за ключевым словом WHERE, может включать:

1) арифметические операторы сравнения: =, <>, > , <, >=, <=;

2) логические операторы – AND, OR, NOT;

3) скобки, определяющие порядок вычислений.

При выполнении условия выборки числа сравниваются алгебраически: отрицательные числа считаются меньше, чем положительные, независимо от их абсолютной величины. Строки сравниваются с их представлением в коде ANSI. При сравнении двух строк, имеющих разные длины, предварительно более короткая строка дополняется справа пробелами для того, чтобы строки имели одинаковую длину.

Пример. Пусть существует некоторая база данных, в которой имеется таблица Table3, содержащая информацию о поставщиках, покупателях, товарах. Предполагается, что покупатель может приобретать товар в кредит. Произвести из данной базы выбор всех кодов (kod) и фамилий (NAME) покупателей, которые находятся в Москве и имеют кредит(CREDITLIMIT) более 200 000.

С помощью языка SQL запрос, соответствующий примеру, можно представить в виде:

SELECT kod, NAME

FROM Table3

WHERE CITY=“Москва”

AND CREDITLIMIT>200000

Выборка с использованием оператора between

Для организации выборки информации из базы данных, принадлежащей некоторому диапазону, в SQL-запросах используются операторы: «>(Больше)»; «<(Меньше)» и Between (Между). Выбор каждого из этих операторов осуществляется в окне мастера запросов из списка Criteria (Критерий), расположенного во вкладке Filter (Фильтр). Операторы «>(Больше)» и «<(Меньше)» используются в том случае, если задана только нижняя или верхняя граница диапазона, a оператор Between (Между) – если известны обе границы диапазона.

С помощью SQL-запроса, набранного в командном окне,

SELECT kod, NAME, UNITPRICE

FROM Table4

WHERE UNITPRICE BETWEEN 20000 AND 100000

на экран будет выведена таблица, содержащая сведения о товарах, стоимость которых (UNITPRICE) находится в диапазоне от 20000 до 100000 включительно. Оператор BETWEEN возвращает истинные значения и для граничных точек.

Кроме того, при организации выборки из таблицы значений, не принадлежащих некоторому диапазону, может быть использовано условие NOT BETWEEN (не принадлежит диапазону между величинами), например:

SELECT kod, NAME, UNITPRICE

FROM Table4

WHERE UNITPRICE NOT BETWEEN 20000 AND 100000

Выборка с использованием оператора in (принадлежит)

СУБД Visual FoxPro позволяет при создании запросов формировать несколько условий. В том случае, если все задаваемые условия накладываются на одно поле, их можно разместить в одной строке. Для этих целей используется оператор IN (принадлежит).

В частности, результатом выполнения SQL-запроса, приведенного ниже

SELECT kod, NAME, UNITPRICE

FROM Table4

WHERE UNITPRICE IN (100000, 200000, 500000)

является таблица, содержащая информацию о товарах, цена которых равна 100000, 200000 или 500000.

Оператор IN является краткой записью условия, представляющего собой последовательность отдельных сравнений, соединенных между операторами OR (или). Предыдущая конструкция SELECT эквивалентна следующей конструкции:

SELECT kod, NAME, UNITPRICE

FROM Table4

WHERE UNITPRICE=100000

OR UNITPRICE=200000

OR UNITPRICE=500000

Как и в случае с оператором BETWEEN можно также использовать конструкцию NOT IN (не принадлежит), например:

SELECT kod, NAME, UNITPRICE

FROM Table4

WHERE UNITPRICE NOT IN (100000, 200000, 500000)