Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ответы новые по БД на экзамен.docx
Скачиваний:
1
Добавлен:
01.05.2025
Размер:
109.83 Кб
Скачать

27. Фразы between, in, like. Использование 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 ¦ Говядина 189. 124.

AND Жиры > 100; ¦ Масло 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

Наконец, для получения значения "минимального оклада" на 15-5-1994 можно сформировать запрос:

SELECT Миноклад ¦ Результат: Миноклад

FROM Миноклады ¦ --------

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