Создание запросов в СУБД Access
Рефераты >> Программирование и компьютеры >> Создание запросов в СУБД Access

2.3. Выборка c использованием фразы WHERE

2.3.1. Использование операторов сравнения

В синтаксисе фразы WHERE (п.2.1) показано, что для отбора нужных строк таблицы можно использовать операторы сравнения = (равно), <> (не равно), < (меньше), <= (меньше или равно), > (больше), >= (больше или равно), которые могут предваряться оператором NOT, создавая, например, отношения "не меньше" и "не больше".

Так, для получения перечня продуктов, практически не содержащих углеводов, можно сформировать запрос SELECT Продукт, Белки, Жиры, Углев, K, Ca, Na, B2, PP, C FROM ПродуктыWHERE Углев = 0;

и получить:

Продукт

Белки

Жиры

Углев

K

Ca

Na

B2

PP

C

Говядина

189.

124.

0.

3150

90

600

1.5

28.

0

Судак

190.

80.

0.

1870

270 0

1.1

10.

30

 

Возможность использования нескольких условий, соединенных логическими операторами AND, OR, AND NOT и OR NOT, позволяет осуществить более детальный отбор строк. Так, для получения перечня продуктов, практически не содержащих углеводов и натрия, можно сформировать запрос: SELECT Продукт, Белки, Жиры, Углев, K, Ca, Na, B2, PP, C FROM ПродуктыWHERE Углев = 0 AND Na = 0;

Результат запроса имеет вид

Продукт

Белки

Жиры

Углев

K

Ca

Na

B2

PP

C

               

Судак

190.

80.

0.

1870

270

0

1.1

10.

30

Добавим к этому запросу еще одно условие SELECT Продукт, Белки, Жиры, Углев, K, Ca, Na, B2, PP, C FROM ПродуктыWHERE Углев = 0 AND Na = 0 AND Продукт <> 'Судак';

и получим на экране сообщение "No rows exist or satisfy the specified clause" или аналогичное (в зависимости от вкусов разработчиков разных СУБД), информирующее об отсутствии строк, удовлетворяющих заданному(ым) условию(ям).

2.3.2. Использование BETWEEN

С помощью BETWEEN . AND . (находится в интервале от . до .) можно отобрать строки, в которых значение какого-либо столбца находятся в заданном диапазоне.

Например, выдать перечень продуктов, в которых значение содержания белка находится в диапазоне от 10 до 50:

 

Результат:

SELECT Продукт, БелкиFROM ПродуктыWHERE Белки BETWEEN 10 AND 50;    

Продукт

Белки

Майонез

31.

Сметана

26.

Молоко

28.

Морковь

13.

Лук

17.

Можно задать и NOT BETWEEN (не принадлежит диапазону между), например:

 

Результат:

SELECT Продукт, Белки, ЖирыFROM Продукты WHERE Белки NOT BETWEEN 10 AND 50 AND Жиры > 100;    

Продукт

Белки

Жиры

Говядина

189.

124.

Масло

60.

825.

Яйца

127.

115.

 

BETWEEN особенно удобен при работе с данными, задаваемыми интервалами, начало и конец которых расположен в разных столбцах.

Для примера воспользуемся таблицей "минимальных окладов" (табл. 2.1), величина которых непосредственно связана со студенческой стипендией. В этой таблице для текущего значения минимального оклада установлена запредельная дата окончания 9 сентября 9999 года.

Таблица 2.1 Минимальные оклады

Миноклад

Начало

Конец

2250

01-01-1993

31-03-1993

4275

01-04-1993

30-06-1993

7740

01-07-1993

30-11-1993

14620

01-12-1993

30-06-1994

20500

01-07-1994

09-09-9999

Если, например, потребовалось узнать, какие изменения минимальных окладов производились в 1993/94 учебном году, то можно выдать запрос SELECT Начало, МинокладFROM МинокладыWHERE Начало BETWEEN '1-9-1993' AND '31-8-1994'

и получить результат:

Начало

Миноклад

01-12-1993

14620

01-07-1994

20500

Отметим, что при формировании запросов значения дат следует заключать в апострофы, чтобы СУБД не путала их с выражениями и не пыталась вычитать из 31 значение 8, а затем 1994.

Для выявления всех значений минимальных окладов, которые существовали в 1993/94 учебном году, можно сформировать запрос SELECT *FROM МинокладыWHERE Начало BETWEEN '1-9-1993' AND '31-8-1994'OR Конец BETWEEN '1-9-1993' AND '31-8-1994'

Миноклад

Начало

Конец

7740

01/07/1993

30/11/1993

14620

01/12/1993

30/06/1994

20500

01/07/1994

09/09/9999


Страница: