Организация Web-доступа к базам данных с использованием SQL-запросов
Рефераты >> Программирование и компьютеры >> Организация Web-доступа к базам данных с использованием SQL-запросов

С помощью специальной команды можно установить в СУБД один из режимов представления NULL-значений при выполнении числовых расчетов: запрет или разрешение замены NULL-значения нулем. В первом случае любое арифметическое выражение, содержащее неопределенный операнд, будет также иметь неопределенное значение. Во втором случае результат вычислений будет иметь численное значение (если это значение попадает в диапазон представления соответствующего типа данных).

Например, при выполнении запроса

SELECT ПР, Цена, К_во, (Цена * К_во)

FROM Поставки;

и разных «настройках» СУБД могут быть получены разные результаты:

ПР

Цена

К_во

(Цена*К_во)

ПР

Цена

К_во

(Цена*К_во)

9

-0-

-0-

-0-

9

-0-

-0-

0.

11

1.5

50

75.

11

1.5

50

75.

12

3.

10

30.

12

3.

10

30.

15

2.

170

340.

15

2.

170

340.

Использование 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.4), величина которых непосредственно связана со студенческой стипендией. В этой таблице для текущего значения минимального оклада установлена запредельная дата окончания 9 сентября 9999 года.

Миноклад

Начало

Конец

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

Рисунок 2.4

Если, например, потребовалось узнать, какие изменения минимальных окладов производились в 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

Наконец, для получения минимального оклада на 15-5-1994:

Результат:

SELECT Миноклад

FROM Миноклады

WHERE '15-05-1994' BETWEEN Начало AND Конец

Миноклад

14620


Страница: